summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlchausmann <jazz-github@zqz.dk>2022-04-22 10:41:55 +0200
committerGitHub <noreply@github.com>2022-04-22 08:41:55 +0000
commita9d1ece0cb2090b54668765f70ec00cd2b3a8554 (patch)
treed91fd046eb9a08b6734f606ebde18ef2606d1f12
parentb8bdd837eb1585b8b6e0c131c8286082d91c47c6 (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.yml25
-rw-r--r--docs/server.md86
2 files changed, 110 insertions, 1 deletions
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 00000000..07db484f
--- /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 0a346363..9c8c0c6b 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
+```
+