Compare commits
1 Commits
781b9c31de
...
f281c3d341
Author | SHA1 | Date |
---|---|---|
Jef Roosens | f281c3d341 |
|
@ -23,3 +23,6 @@
|
||||||
|
|
||||||
[matrix]
|
[matrix]
|
||||||
192.168.0.2 static_ip=192.168.0.2
|
192.168.0.2 static_ip=192.168.0.2
|
||||||
|
|
||||||
|
[atuin-server]
|
||||||
|
192.168.0.2 static_ip=192.168.0.2
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
---
|
||||||
|
dependencies:
|
||||||
|
- role: caddy
|
|
@ -0,0 +1,9 @@
|
||||||
|
---
|
||||||
|
- name: Ensure Caddyfile is present
|
||||||
|
template:
|
||||||
|
src: 'atuin-server.Caddyfile.j2'
|
||||||
|
dest: '/etc/caddy/atuin-server.Caddyfile'
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0644'
|
||||||
|
notify: caddy-reload
|
|
@ -0,0 +1,3 @@
|
||||||
|
atuin.roosens.me {
|
||||||
|
reverse_proxy {{ hostvars[groups['atuin-server'][0]].static_ip }}:8009
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
cd /etc/atuin
|
||||||
|
|
||||||
|
/usr/bin/docker compose exec -T db pg_dump -U atuin atuin |
|
||||||
|
/usr/bin/gzip --rsyncable |
|
||||||
|
/usr/local/bin/restic backup --stdin --stdin-filename atuin-server-postgres.sql.gz
|
|
@ -0,0 +1,15 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Sync server for Atuin
|
||||||
|
After=docker.target
|
||||||
|
Requires=docker.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=exec
|
||||||
|
User=atuin
|
||||||
|
Group=atuin
|
||||||
|
WorkingDirectory=/etc/atuin
|
||||||
|
ExecStart=/usr/bin/docker compose up
|
||||||
|
ExecStop=/usr/bin/docker compose down
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
|
@ -0,0 +1,33 @@
|
||||||
|
# vim: ft=yaml
|
||||||
|
version: '3'
|
||||||
|
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
image: 'ghcr.io/atuinsh/atuin:18.3.0'
|
||||||
|
command: 'server start'
|
||||||
|
restart: 'always'
|
||||||
|
|
||||||
|
ports:
|
||||||
|
- '8009:8888'
|
||||||
|
volumes:
|
||||||
|
- '/etc/atuin/server.toml:/config/server.toml'
|
||||||
|
|
||||||
|
depends_on:
|
||||||
|
db:
|
||||||
|
condition: service_healthy
|
||||||
|
|
||||||
|
db:
|
||||||
|
image: 'postgres:16.4-alpine'
|
||||||
|
restart: 'always'
|
||||||
|
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "pg_isready", "-U", "atuin"]
|
||||||
|
interval: 10s
|
||||||
|
start_period: 30s
|
||||||
|
|
||||||
|
environment:
|
||||||
|
- POSTGRES_USER=atuin
|
||||||
|
- POSTGRES_PASSWORD=atuin
|
||||||
|
- POSTGRES_DB=atuin
|
||||||
|
volumes:
|
||||||
|
- /mnt/data1/atuin-server/postgres:/var/lib/postgresql/data
|
|
@ -0,0 +1,4 @@
|
||||||
|
host = "0.0.0.0"
|
||||||
|
port = 8888
|
||||||
|
open_registration = true
|
||||||
|
db_uri = "postgres://atuin:atuin@db/atuin"
|
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
- name: 'restart atuin-server'
|
||||||
|
ansible.builtin.service:
|
||||||
|
name: 'atuin-server'
|
||||||
|
state: 'restarted'
|
|
@ -0,0 +1,65 @@
|
||||||
|
---
|
||||||
|
- name: Ensure data directory is present
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: '/mnt/data1/atuin-server'
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
owner: 'root'
|
||||||
|
group: 'root'
|
||||||
|
|
||||||
|
- name: Ensure data subvolumes are present
|
||||||
|
community.general.btrfs_subvolume:
|
||||||
|
name: '/atuin-server/{{ item }}'
|
||||||
|
with_items:
|
||||||
|
- 'postgres'
|
||||||
|
|
||||||
|
- name: Ensure configuration directory is present
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: '/etc/atuin'
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
|
||||||
|
- name: Ensure compose file is present
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: 'compose.yml'
|
||||||
|
dest: '/etc/atuin/compose.yml'
|
||||||
|
mode: '0644'
|
||||||
|
owner: 'root'
|
||||||
|
group: 'root'
|
||||||
|
notify: 'restart atuin-server'
|
||||||
|
|
||||||
|
- name: Ensure config file is present
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: 'server.toml'
|
||||||
|
dest: '/etc/atuin/server.yml'
|
||||||
|
mode: '0644'
|
||||||
|
owner: 'root'
|
||||||
|
group: 'root'
|
||||||
|
notify: 'restart atuin-server'
|
||||||
|
|
||||||
|
- name: Ensure backup script is present
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: 'atuin-server.backup.sh'
|
||||||
|
dest: '/etc/backups/atuin-server.backup.sh'
|
||||||
|
owner: 'root'
|
||||||
|
group: 'root'
|
||||||
|
mode: '0644'
|
||||||
|
|
||||||
|
- name: Ensure service file is present
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: 'atuin-server.service'
|
||||||
|
dest: '/lib/systemd/system/atuin-server.service'
|
||||||
|
owner: 'root'
|
||||||
|
group: 'root'
|
||||||
|
mode: '0644'
|
||||||
|
register: res
|
||||||
|
|
||||||
|
- name: systemd-reload
|
||||||
|
ansible.builtin.systemd_service:
|
||||||
|
daemon_reload: true
|
||||||
|
when: 'res.changed'
|
||||||
|
|
||||||
|
- name: Ensure atuin-server service is enabled
|
||||||
|
ansible.builtin.service:
|
||||||
|
name: 'atuin-server'
|
||||||
|
enabled: true
|
Loading…
Reference in New Issue