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

@@ -309,6 +309,64 @@ services:
homepage.href: "http://192.168.3.6:${MAILHOG_WEB_PORT}"
homepage.description: "Web and API based SMTP testing tool"
atuin:
image: ghcr.io/atuinsh/atuin:v18.10.0
user: "${APP_UID}:${APP_GID}"
container_name: "${COMPOSE_PROJECT_NAME}-atuin"
restart: unless-stopped
networks:
- ${COMPOSE_NETWORK_NAME}
volumes:
- "${COMPOSE_PROJECT_NAME}_atuin_config:/config"
ports:
- "${ATUIN_PORT}:8888"
environment:
- PUID=${APP_UID}
- PGID=${APP_GID}
- ATUIN_HOST=0.0.0.0
- ATUIN_PORT=8888
- ATUIN_OPEN_REGISTRATION=true
- ATUIN_DB_URI=postgres://${ATUIN_DB_USERNAME}:${ATUIN_DB_PASSWORD}@atuin-db:5432/${ATUIN_DB_NAME}
- RUST_LOG=info,atuin_server=debug
depends_on:
- atuin-db
command: server start
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:${ATUIN_PORT}"
homepage.description: "Magical shell history synchronization"
atuin-db:
image: postgres:14
container_name: "${COMPOSE_PROJECT_NAME}-atuin-db"
restart: unless-stopped
networks:
- ${COMPOSE_NETWORK_NAME}
volumes:
- "${COMPOSE_PROJECT_NAME}_atuin_db_data:/var/lib/postgresql/data"
environment:
- PUID=${APP_UID}
- PGID=${APP_GID}
- POSTGRES_USER=${ATUIN_DB_USERNAME}
- POSTGRES_PASSWORD=${ATUIN_DB_PASSWORD}
- POSTGRES_DB=${ATUIN_DB_NAME}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${ATUIN_DB_USERNAME} -d ${ATUIN_DB_NAME}"]
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
${COMPOSE_PROJECT_NAME}_redis_data:
driver: local
${COMPOSE_PROJECT_NAME}_atuin_config:
driver: local
${COMPOSE_PROJECT_NAME}_atuin_db_data:
driver: local