mirror of
https://github.com/wukko/cobalt.git
synced 2025-04-29 14:04:25 +02:00
61 lines
2.8 KiB
Markdown
61 lines
2.8 KiB
Markdown
# how to run a cobalt instance
|
|
this tutorial will help you run your own cobalt processing instance. if your instance is public-facing, we highly recommend that you also [protect it from abuse](/docs/protect-an-instance.md) using turnstile or api keys or both.
|
|
|
|
## using docker compose and package from github (recommended)
|
|
to run the cobalt docker package, you need to have `docker` and `docker-compose` installed and configured.
|
|
|
|
if you need help with installing docker, follow *only the first step* of these tutorials by digitalocean:
|
|
- [how to install docker](https://www.digitalocean.com/community/tutorial-collections/how-to-install-and-use-docker)
|
|
- [how to install docker compose](https://www.digitalocean.com/community/tutorial-collections/how-to-install-docker-compose)
|
|
|
|
## how to run a cobalt docker package:
|
|
1. create a folder for cobalt config file, something like this:
|
|
```sh
|
|
mkdir cobalt
|
|
```
|
|
|
|
2. go to cobalt folder, and create a docker compose config file:
|
|
```sh
|
|
cd cobalt && nano docker-compose.yml
|
|
```
|
|
i'm using `nano` in this example, it may not be available in your distro. you can use any other text editor.
|
|
|
|
3. copy and paste the [sample config from here](examples/docker-compose.example.yml) and edit it to your needs.
|
|
make sure to replace default URLs with your own or cobalt won't work correctly.
|
|
|
|
4. finally, start the cobalt container (from cobalt directory):
|
|
```sh
|
|
docker compose up -d
|
|
```
|
|
|
|
if you want your instance to support services that require authentication to view public content, create `cookies.json` file in the same directory as `docker-compose.yml`. example cookies file [can be found here](examples/cookies.example.json).
|
|
|
|
cobalt package will update automatically thanks to watchtower.
|
|
|
|
it's highly recommended to use a reverse proxy (such as nginx) if you want your instance to face the public internet. look up tutorials online.
|
|
|
|
## run cobalt api outside of docker (useful for local development)
|
|
requirements:
|
|
- node.js >= 18
|
|
- git
|
|
- pnpm
|
|
|
|
1. clone the repo: `git clone https://github.com/imputnet/cobalt`.
|
|
2. go to api/src directory: `cd cobalt/api/src`.
|
|
3. install dependencies: `pnpm install`.
|
|
4. create `.env` file in the same directory.
|
|
5. add needed environment variables to `.env` file. only `API_URL` is required to run cobalt.
|
|
- if you don't know what api url to use for local development, use `http://localhost:9000/`.
|
|
6. run cobalt: `pnpm start`.
|
|
|
|
### ubuntu 22.04 workaround
|
|
`nscd` needs to be installed and running so that the `ffmpeg-static` binary can resolve DNS ([#101](https://github.com/imputnet/cobalt/issues/101#issuecomment-1494822258)):
|
|
|
|
```bash
|
|
sudo apt install nscd
|
|
sudo service nscd start
|
|
```
|
|
|
|
## list of environment variables
|
|
[this section has moved](/docs/api-env-variables.md) to a dedicated document that is way easier to understand and maintain. go check it out!
|