pushd database
duckdb db.duckdb < build.sql
popd
Instruction for developers
podman compose -f docker-compose.dev.yml up
# OR
# docker compose -f docker-compose.dev.yml up
export AFTERHEE_NEIS_API_KEY=" YOUR_NEIS_API_KEY"
go run .
swag init # https://github.com/gofiber/swagger?tab=readme-ov-file#usage
AFTERHEE_PORT: 서버 포트. 지정하지 않으면 8080
AFTERHEE_DUCKDB_FILENAME: DuckDB 파일 경로. 지정하지 않으면 database/db.duckdb
AFTERHEE_NEIS_API_KEY: NEIS API 키. 나이스 교육정보 개방 포털 에서 발급
AFTERHEE_GEMINI_API_KEY: Gemini API 키.
AFTERHEE_PROFILE: 서버 모드. PRODUCTION이면 운영모드. DEV이면 개발모드.
docker build -t afterhee:latest -t afterhee:v0.0.1 .
# 서버용 빌드
docker build --platform linux/amd64 -t afterhee:latest -t afterhee:v0.0.1 .
# podman (arm64)
podman build --platform linux/arm64 -t afterhee:latest -t afterhee:v0.0.1 .
podman save --format docker-archive -o afterhee-v0.0.1.tar afterhee:v0.0.1 afterhee:latest
cp ./containers/redis/conf/redis.conf.example ./containers/redis/conf/redis.conf
vim ./containers/redis/conf/redis.conf
# requirepass를 찾아 수정후 저장
Replace a certain server instance
source ./export_env.sh
docker compose up -d --no-deps --force-recreate " afterhee1" # -> Health Check
docker compose up -d --no-deps --force-recreate " afterhee2" # -> Health Check
docker compose up -d --no-deps --force-recreate " afterhee3"
# podman
podman compose up -d --no-deps --force-recreate " afterhee1" # -> Health Check
podman compose up -d --no-deps --force-recreate " afterhee2" # -> Health Check
podman compose up -d --no-deps --force-recreate " afterhee3"
crontab -e
* * * * * /path/to/health_check.sh
sudo cp ./nginx-loghook.sh /usr/local/bin/nginx-loghook.sh
sudo install -m 0755 /usr/local/bin/nginx-loghook.sh /usr/local/bin/nginx-loghook.sh
# 환경변수 세팅
sudo cat > /etc/nginx-loghook.env << 'EOF '
WEBHOOK_URL="https://discord.com/api/webhooks/xxx/yyy"
CONTAINER="afterhee-nginx"
PROVIDER="docker"
RATE_LIMIT_PER_SEC="10" # 필요 시 조정
EOF
sudo chmod 640 /etc/nginx-loghook.env
sudo cp ./nginx-loghook.service /etc/systemd/system/nginx-loghook.service
# 서비스 시작
sudo systemctl daemon-reload
sudo systemctl enable --now nginx-loghook