Initial commit: k8s cluster manifests and scripts

This commit is contained in:
2026-04-01 15:34:02 +08:00
commit 2f04fa4473
49 changed files with 4109 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
# Makefile: 適用於 docker-compose 專案,自動取用當前資料夾為專案名
COMPOSE := docker-compose
COMPOSE_FILE := docker-compose.yml
PROJECT_NAME := $(notdir $(CURDIR)) # 依照當前資料夾自動命名
# 可選自訂 .env 變數(預設 docker-compose 自動載入)
# ENV_FILE := .env
.PHONY: help up down build restart logs ps exec clean prune
help:
@echo "🔧 Docker Compose Makefile 指令:"
@echo " make up - 啟動所有服務 (背景執行)"
@echo " make up-fg - 前景執行(方便除錯)"
@echo " make down - 停止並移除服務容器"
@echo " make build - 重新建構服務映像檔"
@echo " make restart - 重啟所有服務"
@echo " make logs - 查看服務日誌"
@echo " make ps - 顯示服務狀態"
@echo " make exec - 進入主要容器 shell"
@echo " make clean - 清理所有服務資料(含 volume"
@echo " make prune - 清除未使用的資源"
up:
$(COMPOSE) -p $(PROJECT_NAME) -f $(COMPOSE_FILE) up -d
up-fg:
$(COMPOSE) -p $(PROJECT_NAME) -f $(COMPOSE_FILE) up
down:
$(COMPOSE) -p $(PROJECT_NAME) -f $(COMPOSE_FILE) down
build:
$(COMPOSE) -p $(PROJECT_NAME) -f $(COMPOSE_FILE) build
restart:
$(COMPOSE) -p $(PROJECT_NAME) -f $(COMPOSE_FILE) down
$(COMPOSE) -p $(PROJECT_NAME) -f $(COMPOSE_FILE) up -d
logs:
$(COMPOSE) -p $(PROJECT_NAME) -f $(COMPOSE_FILE) logs -f --tail=100
ps:
$(COMPOSE) -p $(PROJECT_NAME) -f $(COMPOSE_FILE) ps
exec:
$(COMPOSE) -p $(PROJECT_NAME) -f $(COMPOSE_FILE) exec app sh
clean:
$(COMPOSE) -p $(PROJECT_NAME) -f $(COMPOSE_FILE) down -v --remove-orphans
prune:
docker system prune -af --volumes

Binary file not shown.

After

Width:  |  Height:  |  Size: 555 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 KiB

Binary file not shown.

View File

@@ -0,0 +1,42 @@
services:
database:
image: postgres:17-alpine
container_name: codimd_database
environment:
- POSTGRES_USER=codimd
- POSTGRES_PASSWORD=C0d1MdP@ss2025
- POSTGRES_DB=codimd
volumes:
- "database-data:/var/lib/postgresql/data"
restart: always
labels:
- "com.centurylinklabs.watchtower.enable=true"
networks:
- codimd_net
codimd:
image: hackmdio/hackmd:latest
container_name: codimd_app
environment:
- CMD_DB_URL=postgres://codimd:C0d1MdP@ss2025@database/codimd
- CMD_USECDN=false
depends_on:
- database
ports:
- "3001:3000"
volumes:
- upload-data:/home/hackmd/app/public/uploads
restart: always
labels:
- "com.centurylinklabs.watchtower.enable=true"
networks:
- codimd_net
volumes:
database-data: {}
upload-data: {}
networks:
codimd_net:
driver: bridge