Sign inCreate server
Apps & bots

Deploy an App from GitHub or GitLab (Auto Deploy)

Connect a GitHub or GitLab repo, add the deploy key and webhook, and deploy your app on every push. Roll back to any version from the SolumeCore panel.

7 min read#deploy from github#deploy app from git#gitlab deploy#auto deploy webhook#deploy key#desplegar desde github#desplegar app desde git#despliegue automático

You can deploy an app from GitHub or GitLab on SolumeCore in a few minutes: open your app's Code tab, press Connect repository, paste your repository link and set the build and start commands. After that, every deploy is one click, and with a webhook each push to your branch can publish your app automatically.

Before you start

  • A SolumeCore app (Node.js, Python or another language available in your plan) with a start command your project can run, for example npm start or python main.py.
  • A Git repository on GitHub, GitLab or any other Git host that is reachable from the internet.
  • The repository link: a public repo uses the HTTPS link, a private repo uses the SSH link.
i
Note

Secrets such as bot tokens and API keys don't belong in the repository. Save them as variables in the panel instead; see Set environment variables for your app or bot.

Step 1: Connect your repository

  1. Open your app in the panel and go to Code > Deploy.
  2. If the app has no code yet, you will see three ways to put it online: Connect a Git repository (recommended), Start from a template and Upload your files. Press Connect repository.
  3. The wizard has three steps: Your code, Access and Commands.

Your code

Choose Public repository or Private repository, then paste the link.

Repository Link to use Example
Public The HTTPS link from the Code button https://github.com/your-user/my-bot
Private The SSH link (Code > SSH) [email protected]:your-user/my-bot.git

Then enter the Branch we publish. It is usually main; older repositories use master.

Some rules the panel enforces: private repositories connect over SSH; a link with a username or token inside (https://user:token@...) is rejected; and the Git host must be public on the internet. If you paste an SSH link, the wizard switches to private by itself.

Access

For a public repository there is nothing to configure. For a private one, the wizard shows a read-only Public key (the deploy key) that lets SolumeCore read the repository without your password. Press Create key if none is shown yet, then add it to your repository.

On GitHub:

  1. In your repository, open Settings > Deploy keys.
  2. Press Add deploy key, give it a name such as SolumeCore and paste the key.
  3. Leave Allow write access unchecked and press Add key.

On GitLab:

  1. In your project, open Settings > Repository > Deploy keys.
  2. Press Add new key, give it a title and paste the key.
  3. Leave Grant write permissions unchecked and save.

The wizard has shortcuts to open those pages. Once the key is in place, tick I added the key to my repository and continue.

Commands

  • Build command runs once after every deploy, before the app starts. It usually installs dependencies or compiles. The panel suggests commands for your language, such as npm ci, npm install or npm ci && npm run build for Node.js, and pip install -U --prefix .local -r requirements.txt for Python. Its output goes to the deploy log.
  • Start command is the single line that runs your app, for example npm start, node index.js or python main.py. If you leave it empty, the default for your language is used (you can review it in Settings > Startup).
  • Deploy automatically on every push turns on automatic deploys. It needs a webhook, which you add in step 3.

Press Save and deploy. The first deploy starts right away.

Step 2: Follow the deploy

The Deploy screen shows a progress line with four steps: Queued, Code, Build and Live. Press Console to watch every line as it happens. When it finishes you see the commit, how long it took and a View log button.

A deploy has these states:

State Meaning
Queued Waiting for its turn
Fetching code Getting your code from the repository
Building Running your build command and then starting the app
Deployed Done
Failed Open the log: it is usually a missing dependency or a wrong start command
Cancelled You cancelled it while it was queued

If you press Deploy now while another deploy is already queued, the queued one is updated to include your latest changes.

Step 3: Deploy automatically on every push

A webhook is a message your repository sends SolumeCore each time you push.

  1. Under Code > Deploy, make sure Deploy automatically on every push is on and press Save changes.
  2. In the Automatic deploys (webhook) card, press Generate secret. Copy the Webhook URL and the secret right away; the secret is shown only once.
  3. Add the webhook to your repository.

On GitHub: open Settings > Webhooks > Add webhook. Set Payload URL to the webhook URL, Content type to application/json and Secret to the secret. Choose Just the push event and press Add webhook.

On GitLab: open Settings > Webhooks > Add new webhook. Paste the URL, put the secret in Secret token, tick only Push events and press Add webhook.

Automatic deploys work with GitHub and GitLab push events. Only pushes to the branch you configured trigger a deploy; pushes to other branches are ignored, and a repeated delivery of the same push is ignored too.

Roll back, redeploy or start over

  • Deploy now publishes the latest code of your branch again.
  • Deploy history lists every version with its status and duration. Press Log to read it, or Roll back on a version that worked: we deploy that exact version again, and your variables and the files outside the repository stay as they are.
  • Under the ... menu, Change repository... lets you point the app to another repo, and Reinstall from scratch deletes every file on the server and clones the repository again.
!
Warning

A normal deploy only replaces the files tracked by Git, so things like a SQLite database or uploaded files survive. Reinstall from scratch deletes everything not in the repository, including node_modules and any .env file. Create a backup first if something matters.

If you ever need a new deploy key or webhook secret, use Generate a new key or Generate another secret. The old one stops working immediately, so paste the new one into your repository before the next deploy.

Troubleshooting

  • The deploy fails right away, with a message about the branch: check the link, that the branch name exists and, for a private repo, that the deploy key is added to the repository.
  • The app builds but doesn't start: open the console. A wrong Start command or a missing dependency is the usual cause.
  • Pushing doesn't trigger a deploy: confirm that Deploy automatically on every push is saved, that the webhook secret matches, that the content type is application/json and that you pushed to the configured branch.
  • The Deploy now button is disabled: you have unsaved changes. Save them first.

FAQ

Can I deploy a private GitHub repository?

Yes. Use the SSH link and add the deploy key shown in the wizard to the repository, with write access left off.

Does a deploy delete my data?

A normal deploy only overwrites files tracked in your repository. Files that aren't in the repo, such as a SQLite database or uploads, are kept. Only Reinstall from scratch deletes everything.

Does it work with Bitbucket or a self-hosted Git server?

You can clone any public Git host over HTTPS, or over SSH with the deploy key. Automatic deploys through webhooks are supported for GitHub and GitLab. On other hosts, press Deploy now after each push.

How do I go back to a previous version?

Open Deploy history and press Roll back next to the version you want.

If you want a place to run your own code, compare the app plans for Node.js, Python and more.

Was this article helpful?
Deploy an App from GitHub or GitLab (Auto Deploy)