How Do I Use the Spinup Container Service?

How Do I Use the Spinup Container Service?

Spinup’s Container Service lets you run containerized applications in the cloud — without managing any servers. If you're familiar with Docker, this is a simple way to run web apps, APIs, background tasks, or other container-based tools using Yale-managed cloud infrastructure.

You can deploy containers from public repositories, define environment variables and secrets, and support more advanced setups like sidecars or encrypted endpoints — all from the Spinup web interface.


What Can I Use It For?

Here are a few common use cases:

  • Hosting a simple web app using an Nginx or Flask container

  • Running an API backend with dynamic environment variable settings

  • Creating a secure frontend proxy to serve encrypted traffic

  • Spinning up lightweight tools for testing or demonstration


Getting Started: Deploying a Simple Container

Let’s walk through a basic example using the nginx container from Docker Hub. This will create a web-accessible service inside your Spinup space.

Step-by-Step

  1. Log in to Spinup
    Go to https://spinup.internal.yale.edu and sign in with your NetID.

  2. Create a Container Service

    • Click Create in your space

    • Under Containers, select Container Service

    • Name your service (e.g., simplenginx)

    • Choose a size (e.g., nano.512MB)

    • Click 2. Containers

  3. Define the Container

    • Name: nginx

    • Image: nginx:latest (press Tab to validate it)

    • Leave other settings at their defaults

    • Click + Add Container, then 3. Summary

  4. Create the Service

    • Review your settings

    • Click Create Service

Once deployed, your container will be accessible at a DNS name like:

http://spinup-xxxxx-simplenginx.svc.spinup.yale.edu

You can test it by visiting that link or running:

curl http://<your-endpoint>

Next Steps: Customizing Your Container

After launching a service, you can edit and redeploy it to update settings like:

  • Environment variables (e.g., DEBUG=true, APP_PORT=3000)

  • Secret values (for API keys or database credentials)

  • Port mappings

  • Number of replicas (for scaling)

Spinup makes these updates easy — simply edit the service and choose Redeploy.


Advanced Example: Adding HTTPS with a Sidecar Proxy

Need encrypted traffic to your web app? You can pair your container with an nginxproxy sidecar that terminates HTTPS.

This setup includes:

  • A backend app (e.g., testapi) that listens on port 8080

  • A sidecar proxy (e.g., nginxproxy) that handles HTTPS on port 443

You can use prebuilt images from the Yale Spinup Docker Hub or your own.

Common environment variables include:

  • LISTEN_PORT=443 — enables HTTPS

  • CERT_SUBJECT=/CN=your-app-name — controls the self-signed cert CN

This is useful when deploying services behind a Yale load balancer or when encrypting traffic between components.


Secrets and Environment Variables

Spinup supports securely injecting sensitive values (like tokens or passwords) using the Secrets tab in your Space.

To use them:

  1. Add the secret to your Space (e.g., name: db_password, value: mypassword)

  2. Add the secret to your container under Secret Environment Variables

Spinup handles encryption and access control — the secret will be securely passed to your container at runtime.


Best Practices

  • Start simple. Begin with a basic container to understand how services work.

  • Use secrets for anything sensitive. Never hardcode credentials into your container image or environment variables.

  • Use meaningful names for services and containers — this makes debugging easier.

  • Review logs and metrics in the Container Service dashboard to monitor behavior.


Need Help?