diff options
author | lchausmann <jazz-github@zqz.dk> | 2022-04-22 10:41:55 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-22 08:41:55 +0000 |
commit | a9d1ece0cb2090b54668765f70ec00cd2b3a8554 (patch) | |
tree | d91fd046eb9a08b6734f606ebde18ef2606d1f12 | |
parent | b8bdd837eb1585b8b6e0c131c8286082d91c47c6 (diff) |
Added docker-compose.yml (#325)
Also added section to how to run your own server.
Co-authored-by: Lars Chr. Duus Hausmann <lars.chr@duus-hausmann.dk>
-rw-r--r-- | docker-compose.yml | 25 | ||||
-rw-r--r-- | docs/server.md | 86 |
2 files changed, 110 insertions, 1 deletions
diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 000000000..07db484fb --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,25 @@ +version: '3.5' +services: + atuin: + restart: always + image: ghcr.io/ellie/atuin:main + command: server start + volumes: + - "./config:/config" + links: + - postgresql:db + ports: + - 8888:8888 + environment: + ATUIN_HOST: "0.0.0.0" + ATUIN_OPEN_REGISTRATION: "true" + ATUIN_DB_URI: postgres://atuin:really-insecure@db/atuin + postgresql: + image: postgres:14 + restart: unless-stopped + volumes: # Don't remove permanent storage for index database files! + - "./database:/var/lib/postgresql/data/" + environment: + POSTGRES_USER: atuin + POSTGRES_PASSWORD: really-insecure + POSTGRES_DB: atuin diff --git a/docs/server.md b/docs/server.md index 0a346363b..9c8c0c6bd 100644 --- a/docs/server.md +++ b/docs/server.md @@ -73,4 +73,88 @@ There is a supplied docker image to make deploying a server as a container easie ```sh docker run -d -v "$USER/.config/atuin:/config" ghcr.io/ellie/atuin:latest server start -```
\ No newline at end of file +``` + +## Docker Compose + +Using the already build docker image hosting your own Atuin can be done using the supplied docker-compose file. + +Create a `.env` file next to `docker-compose.yml` with contents like this: + +``` +ATUIN_DB_USERNAME=atuin +# Choose your own secure password +ATUIN_DB_PASSWORD=really-insecure +``` + +Create a `docker-compose.yml`: + +```yaml +version: '3.5' +services: + atuin: + restart: always + image: ghcr.io/ellie/atuin:main + command: server start + volumes: + - "./config:/config" + links: + - postgresql:db + ports: + - 8888:8888 + environment: + ATUIN_HOST: "0.0.0.0" + ATUIN_OPEN_REGISTRATION: "true" + ATUIN_DB_URI: postgres://$ATUIN_DB_USERNAME:$ATUIN_DB_PASSWORD@db/atuin + postgresql: + image: postgres:14 + restart: unless-stopped + volumes: # Don't remove permanent storage for index database files! + - "./database:/var/lib/postgresql/data/" + environment: + POSTGRES_USER: $ATUIN_DB_USERNAME + POSTGRES_PASSWORD: $ATUIN_DB_PASSWORD + POSTGRES_DB: atuin +``` + +Start the services using `docker-compose`: + +```sh +docker-compose up -d +``` + +### Using systemd to manage your atuin server + +The following `systemd` unit file to manage your `docker-compose` managed service: + +``` +[Unit] +Description=Docker Compose Atuin Service +Requires=docker.service +After=docker.service + +[Service] +# Where the docker-compose file is located +WorkingDirectory=/srv/atuin-server +ExecStart=/usr/bin/docker-compose up +ExecStop=/usr/bin/docker-compose down +TimeoutStartSec=0 +Restart=on-failure +StartLimitBurst=3 + +[Install] +WantedBy=multi-user.target +``` + +Start and enable the service with: + +```sh +systemctl enable --now atuin +``` + +Check if its running with: + +```sh +systemctl status atuin +``` + |