Skip to content

Getting Started

Disco turns any Linux server (Hetzner, DigitalOcean, AWS, or a Raspberry Pi) into a private Platform-as-a-Service. You get a git push workflow and zero-downtime deployments running on your own hardware, managed by our hosted web dashboard.

This guide will walk you through setting up your server and deploying your first application in about 5 minutes.

Before you start, make sure you have:

  • A Linux Server: We support Ubuntu 24.04 LTS. You need SSH access to this server.
  • A GitHub Account: Disco uses GitHub for authentication and to pull your code.
  • A Domain Name (Optional): Disco provides automatic subdomains, but you can use your own custom domain if you have one.

  1. Install Disco on Your Server

    SSH into your server and run the installation script.

    Terminal window
    # SSH into your server as root, or as ubuntu
    # ssh root@...
    # Run the install script
    curl -fsSL https://disco.cloud/install.sh | sh

    The script will install Docker, set up the Disco daemon, and provision a secure connection. When it finishes, you will see an output that looks like this:

    Terminal window
    ...
    -> [6/7] Generating invite link...
    -> [7/7] Installation complete!
    Visit this URL to complete setup:
    https://dashboard.disco.cloud/i/...

    Copy the URL from your terminal and open it in your browser.

  2. Connect Your GitHub Account

    When you open the link, you will be asked to log in with GitHub. This connects your GitHub account to the web dashboard, where you’ll be able to manage your Disco servers.

    GitHub Login Page

    Once logged in, you will be taken to your server’s dashboard.

  3. Accept the Invite to your Server

    You will be asked to accept an invite to your Disco server. Click the “Yes, Accept Invite” button.

    Accept Invite Page
  4. Configure the GitHub App

    To deploy your code, your Disco server needs permission to read your repositories. You need to create and install a GitHub App.

    1. On the Disco dashboard, you will see a “Set up GitHub integration” button. Click it.
    2. This will open GitHub in a new tab. Give the app a name (e.g., Disco my-server) and click Create GitHub App.
    3. On the next screen, click Install.
    4. Select the repositories you want to deploy (or select “All repositories”).

    After selecting the repositories, you should be brought back to the Disco dashboard.

  5. Prepare Your Repository

    Disco needs two files in your repository to know how to build and run your app. If you don’t have them, create them now.

    Dockerfile tells Disco how to build your application image.

    Dockerfile
    # Example for a Node.js app
    FROM node:latest
    WORKDIR /code
    COPY ./package.json /code/package.json
    COPY ./package-lock.json /code/package-lock.json
    RUN npm ci
    COPY . /code/.
    CMD ["node", "index.js"]

    disco.json tells Disco which service to expose to the internet.

    disco.json
    {
    "version": "1.0",
    "services": {
    "web": {
    "port": 3000
    }
    }
    }
    • web: This service name is special. Disco will route public traffic to this service.
    • port: The internal port your app listens on (must match your app’s config).

    disco.json supports many more options for workers, health checks, and crons.

  6. Deploy Your First Project

    Back in the Disco dashboard:

    1. You should be at the New Project form. Otherwise, click Projects in the left sidebar.
    2. Name: Give your project a name (e.g., my-flask-app).
    3. Repository: Select the GitHub repository you authorized in Step 3.
    4. Click “Create Project”.
    New Project Form

    Disco will now pull your code, build the Docker image, and start your application. You can watch the build logs stream in real-time.

Success! Once the build finishes, your app will be live at the URL displayed in the dashboard.