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:
@@ -83,6 +83,7 @@ All configuration is managed through `demo.env` and dynamic detection:
|
||||
| **Atomic Tracker** | 4012 | Habit tracking and personal dashboard | [Open](http://192.168.3.6:4012) |
|
||||
| **Wakapi** | 4015 | Open-source WakaTime alternative for time tracking | [Open](http://192.168.3.6:4015) |
|
||||
| **MailHog** | 4017 | Web and API based SMTP testing tool | [Open](http://192.168.3.6:4017) |
|
||||
| **Atuin** | 4018 | Magical shell history synchronization | [Open](http://192.168.3.6:4018) |
|
||||
|
||||
### 📚 Archival & Content Management
|
||||
| Service | Port | Description | 🌐 Access |
|
||||
|
||||
@@ -113,6 +113,7 @@ show_status() {
|
||||
echo -e "${GREEN} Atomic Tracker: http://localhost:${ATOMIC_TRACKER_PORT}${NC}"
|
||||
echo -e "${GREEN} Wakapi: http://localhost:${WAKAPI_PORT}${NC}"
|
||||
echo -e "${GREEN} MailHog: http://localhost:${MAILHOG_WEB_PORT}${NC}"
|
||||
echo -e "${GREEN} Atuin: http://localhost:${ATUIN_PORT}${NC}"
|
||||
echo -e "${GREEN} Grafana: http://localhost:${GRAFANA_PORT}${NC}"
|
||||
echo -e "${GREEN} Portainer: http://localhost:${PORTAINER_PORT}${NC}"
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ ATOMIC_TRACKER_PORT=4012
|
||||
WAKAPI_PORT=4015
|
||||
MAILHOG_SMTP_PORT=4016
|
||||
MAILHOG_WEB_PORT=4017
|
||||
ATUIN_PORT=4018
|
||||
|
||||
# Archival & Content Management
|
||||
ARCHIVEBOX_PORT=4013
|
||||
@@ -96,6 +97,11 @@ MAILHOG_SMTP_BIND_ADDR=0.0.0.0:1025
|
||||
MAILHOG_WEB_BIND_ADDR=0.0.0.0:8025
|
||||
MAILHOG_STORAGE=memory
|
||||
|
||||
# Atuin Configuration
|
||||
ATUIN_DB_USERNAME=atuin
|
||||
ATUIN_DB_PASSWORD=demo_atuin_password
|
||||
ATUIN_DB_NAME=atuin
|
||||
|
||||
# ArchiveBox Configuration
|
||||
ARCHIVEBOX_DATA_DIR=/data
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user