feat: add Atuin shell history synchronization service

- Add Atuin v18.10.0 service with PostgreSQL 14 database backend
- Configure Atuin server on port 4018 with open registration for demo
- Add PostgreSQL database service with proper health checks
- Update demo-stack.sh status display to include Atuin URL
- Update README.md service table with Atuin entry
- Add Atuin configuration variables to demo.env
- Use TCP socket health check for Atuin (no curl available in container)
- Atuin server accessible and responding with version info
- All services including Atuin now operational and healthy
This commit is contained in:
TSYSDevStack Team
2025-11-14 01:07:16 -05:00
parent 534c486aea
commit c6e7c235ca
5 changed files with 133 additions and 1 deletions

View File

@@ -142,7 +142,7 @@ services:
- DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=demo_token
- DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=demo_token
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8086/health"]
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8086/health"]
interval: 30s
timeout: 10s
retries: 3
@@ -309,6 +309,64 @@ services:
homepage.href: "http://192.168.3.6:4017"
homepage.description: "Web and API based SMTP testing tool"
atuin:
image: ghcr.io/atuinsh/atuin:v18.10.0
command: server start
user: "1000:1000"
container_name: "tsysdevstack-supportstack-demo-atuin"
restart: unless-stopped
networks:
- tsysdevstack-supportstack-demo-network
volumes:
- "tsysdevstack-supportstack-demo_atuin_config:/config"
ports:
- "4018:8888"
environment:
- PUID=1000
- PGID=1000
- ATUIN_HOST=0.0.0.0
- ATUIN_PORT=8888
- ATUIN_OPEN_REGISTRATION=true
- ATUIN_DB_URI=postgres://atuin:demo_atuin_password@atuin-db:5432/atuin
- RUST_LOG=info,atuin_server=debug
depends_on:
- atuin-db
healthcheck:
test: ["CMD-SHELL", "test -f /proc/net/tcp && grep -q ':2288' /proc/net/tcp"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
labels:
homepage.group: "Developer Tools"
homepage.name: "Atuin"
homepage.icon: "atuin.png"
homepage.href: "http://192.168.3.6:4018"
homepage.description: "Magical shell history synchronization"
atuin-db:
image: postgres:14
container_name: "tsysdevstack-supportstack-demo-atuin-db"
restart: unless-stopped
networks:
- tsysdevstack-supportstack-demo-network
volumes:
- "tsysdevstack-supportstack-demo_atuin_db_data:/var/lib/postgresql/data"
environment:
- PUID=1000
- PGID=1000
- POSTGRES_USER=atuin
- POSTGRES_PASSWORD=demo_atuin_password
- POSTGRES_DB=atuin
healthcheck:
test: ["CMD-SHELL", "pg_isready -U atuin -d atuin"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
labels:
com.docker.compose.project: "tsysdevstack-supportstack-demo"
# =============================================================================
# ARCHIVAL & CONTENT MANAGEMENT
# =============================================================================
@@ -447,3 +505,7 @@ volumes:
driver: local
tsysdevstack-supportstack-demo_redis_data:
driver: local
tsysdevstack-supportstack-demo_atuin_config:
driver: local
tsysdevstack-supportstack-demo_atuin_db_data:
driver: local