一键导入
podman-deployment
Podman Compose deployment patterns for crypto-scout-collector containerization with TimescaleDB and automated backups
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Podman Compose deployment patterns for crypto-scout-collector containerization with TimescaleDB and automated backups
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Java 25 code style conventions for crypto-scout-collector including naming, imports, error handling, repository patterns, and testing
Java 25 microservice development patterns for crypto-scout-collector including stream consumption, batch processing, and repository patterns
| name | podman-deployment |
| description | Podman Compose deployment patterns for crypto-scout-collector containerization with TimescaleDB and automated backups |
| license | MIT |
| compatibility | opencode |
| metadata | {"tools":"podman","services":"timescaledb, rabbitmq","domain":"deployment"} |
Guide containerized deployment of crypto-scout-collector with Podman, including TimescaleDB with automated backups and RabbitMQ Streams integration.
crypto-scout-collector:0.0.1eclipse-temurin:25-jre-alpine10001 (non-root)8081 (health endpoint)crypto-scout-bridgetimescale/timescaledb:latest-pg17crypto-scout-collector-db5432./data/postgresql./script/ to /docker-entrypoint-initdb.d/
00-init.sql - extensions, schema, stream_offsets table01_bybit_spot_tables.sql - spot market tables02_bybit_linear_tables.sql - linear market tables03_crypto_scout_tables.sql - CMC and risk tables04_btc_usd_daily_inserts.sql - historical daily data05_btc_usd_weekly_inserts.sql - historical weekly data06_cmc_fgi_inserts.sql - CMC FGI historical data07_alternative_fgi_inserts.sql - Alternative FGI dataprodrigestivill/postgres-backup-local:latestcrypto-scout-collector-backup./backups5552567215672bybit-stream, crypto-scout-streamcollector-queue, chatbot-queue# Build shaded JAR (required before building image)
mvn -q -DskipTests package
# Create network (once)
./script/network.sh
# Prepare secrets
cp secret/timescaledb.env.example secret/timescaledb.env
cp secret/postgres-backup.env.example secret/postgres-backup.env
cp secret/collector.env.example secret/collector.env
chmod 600 secret/*.env
# Edit secrets with your values
$EDITOR secret/timescaledb.env
$EDITOR secret/collector.env
# Build and start all services
podman-compose -f podman-compose.yml up -d
# Check health
curl -s http://localhost:8081/health
# View logs
podman logs -f crypto-scout-collector
secret/timescaledb.env:
POSTGRES_DB=crypto_scout
POSTGRES_USER=crypto_scout_db
POSTGRES_PASSWORD=your_secure_password
secret/collector.env:
SERVER_PORT=8081
AMQP_RABBITMQ_HOST=host.containers.internal
AMQP_RABBITMQ_PORT=5672
AMQP_STREAM_PORT=5552
AMQP_RABBITMQ_USERNAME=crypto_scout_mq
AMQP_RABBITMQ_PASSWORD=your_mq_password
JDBC_DATASOURCE_URL=jdbc:postgresql://crypto-scout-collector-db:5432/crypto_scout
JDBC_DATASOURCE_USERNAME=crypto_scout_db
JDBC_DATASOURCE_PASSWORD=your_db_password
The podman-compose.yml includes production hardening:
init: true - proper signal handlingpids_limit: 256 - process limitread_only rootfs with tmpfs: /tmpcap_drop: ALL - drop all capabilitiessecurity_opt: no-new-privileges=truecpus: 0.5, mem_limit: 256mrestart: unless-stoppedstart_period: 30s./data/postgresql is emptypodman exec crypto-scout-collector-db psql -U crypto_scout_db -c "\dt crypto_scout.*"For already-initialized databases, apply scripts manually:
podman exec -i crypto-scout-collector-db psql -U crypto_scout_db -d crypto_scout < script/bybit_spot_tables.sql
podman exec -i crypto-scout-collector-db psql -U crypto_scout_db -d crypto_scout < script/bybit_linear_tables.sql
podman exec -i crypto-scout-collector-db psql -U crypto_scout_db -d crypto_scout < script/crypto_scout_tables.sql
Backups run on schedule defined in secret/postgres-backup.env:
POSTGRES_BACKUP_SCHEDULE=@daily
POSTGRES_BACKUP_KEEP_DAYS=7
POSTGRES_BACKUP_KEEP_WEEKS=4
POSTGRES_BACKUP_KEEP_MONTHS=6
# From custom format dump
pg_restore -h localhost -p 5432 -U crypto_scout_db -d crypto_scout < backups/crypto_scout-YYYYMMDD.dump
# From SQL file
psql -h localhost -p 5432 -U crypto_scout_db -d crypto_scout < backups/crypto_scout-YYYYMMDD.sql
# Prerequisites: RabbitMQ and TimescaleDB running
# Set environment variables
export AMQP_RABBITMQ_PASSWORD=your_mq_password
export JDBC_DATASOURCE_PASSWORD=your_db_password
# Run the app
java -jar target/crypto-scout-collector-0.0.1.jar
# Health check
curl -s http://localhost:8081/health
podman --versionpodman logs crypto-scout-collectorpodman network inspect crypto-scout-bridgepodman exec crypto-scout-collector-db pg_isreadysecret/collector.envAMQP_RABBITMQ_HOST=host.containers.internalpodman logs crypto-scout-collectorrm -rf ./data/postgresql and restartUse this skill when: