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) |
|
| **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) |
|
| **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) |
|
| **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
|
### 📚 Archival & Content Management
|
||||||
| Service | Port | Description | 🌐 Access |
|
| Service | Port | Description | 🌐 Access |
|
||||||
|
|||||||
@@ -113,6 +113,7 @@ show_status() {
|
|||||||
echo -e "${GREEN} Atomic Tracker: http://localhost:${ATOMIC_TRACKER_PORT}${NC}"
|
echo -e "${GREEN} Atomic Tracker: http://localhost:${ATOMIC_TRACKER_PORT}${NC}"
|
||||||
echo -e "${GREEN} Wakapi: http://localhost:${WAKAPI_PORT}${NC}"
|
echo -e "${GREEN} Wakapi: http://localhost:${WAKAPI_PORT}${NC}"
|
||||||
echo -e "${GREEN} MailHog: http://localhost:${MAILHOG_WEB_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} Grafana: http://localhost:${GRAFANA_PORT}${NC}"
|
||||||
echo -e "${GREEN} Portainer: http://localhost:${PORTAINER_PORT}${NC}"
|
echo -e "${GREEN} Portainer: http://localhost:${PORTAINER_PORT}${NC}"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ ATOMIC_TRACKER_PORT=4012
|
|||||||
WAKAPI_PORT=4015
|
WAKAPI_PORT=4015
|
||||||
MAILHOG_SMTP_PORT=4016
|
MAILHOG_SMTP_PORT=4016
|
||||||
MAILHOG_WEB_PORT=4017
|
MAILHOG_WEB_PORT=4017
|
||||||
|
ATUIN_PORT=4018
|
||||||
|
|
||||||
# Archival & Content Management
|
# Archival & Content Management
|
||||||
ARCHIVEBOX_PORT=4013
|
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_WEB_BIND_ADDR=0.0.0.0:8025
|
||||||
MAILHOG_STORAGE=memory
|
MAILHOG_STORAGE=memory
|
||||||
|
|
||||||
|
# Atuin Configuration
|
||||||
|
ATUIN_DB_USERNAME=atuin
|
||||||
|
ATUIN_DB_PASSWORD=demo_atuin_password
|
||||||
|
ATUIN_DB_NAME=atuin
|
||||||
|
|
||||||
# ArchiveBox Configuration
|
# ArchiveBox Configuration
|
||||||
ARCHIVEBOX_DATA_DIR=/data
|
ARCHIVEBOX_DATA_DIR=/data
|
||||||
|
|
||||||
|
|||||||
@@ -142,7 +142,7 @@ services:
|
|||||||
- DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=demo_token
|
- DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=demo_token
|
||||||
- DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=demo_token
|
- DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=demo_token
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "curl", "-f", "http://localhost:8086/health"]
|
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8086/health"]
|
||||||
interval: 30s
|
interval: 30s
|
||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
@@ -309,6 +309,64 @@ services:
|
|||||||
homepage.href: "http://192.168.3.6:4017"
|
homepage.href: "http://192.168.3.6:4017"
|
||||||
homepage.description: "Web and API based SMTP testing tool"
|
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
|
# ARCHIVAL & CONTENT MANAGEMENT
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
@@ -447,3 +505,7 @@ volumes:
|
|||||||
driver: local
|
driver: local
|
||||||
tsysdevstack-supportstack-demo_redis_data:
|
tsysdevstack-supportstack-demo_redis_data:
|
||||||
driver: local
|
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.href: "http://192.168.3.6:${MAILHOG_WEB_PORT}"
|
||||||
homepage.description: "Web and API based SMTP testing tool"
|
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
|
# ARCHIVAL & CONTENT MANAGEMENT
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
@@ -447,3 +505,7 @@ volumes:
|
|||||||
driver: local
|
driver: local
|
||||||
${COMPOSE_PROJECT_NAME}_redis_data:
|
${COMPOSE_PROJECT_NAME}_redis_data:
|
||||||
driver: local
|
driver: local
|
||||||
|
${COMPOSE_PROJECT_NAME}_atuin_config:
|
||||||
|
driver: local
|
||||||
|
${COMPOSE_PROJECT_NAME}_atuin_db_data:
|
||||||
|
driver: local
|
||||||
|
|||||||
Reference in New Issue
Block a user