Coolify
一个轻量级的 PaaS 平台,类似于Vercel,不需要 K8s,预先做好了一些服务模板可以直接部署。
install
注意,我这里把官方的
/data目录,替换成了/opt目录。
https://coolify.io/docs/get-started/installation#manual-installation
Prepare
# init dir
mkdir -p /opt/coolify/{source,ssh,applications,databases,backups,services,proxy,webhooks-during-maintenance}
mkdir -p /opt/coolify/ssh/{keys,mux}
mkdir -p /opt/coolify/proxy/dynamic
# gen key, 每个链接的 Server 都需要单独生成
ssh-keygen -f /opt/coolify/ssh/keys/id.root@host.docker.internal -t ed25519 -N '' -C root@coolify
# import key 到本机的 Root 用户下
cat /opt/coolify/ssh/keys/id.root@host.docker.internal.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# download docker-compose spec
curl -fsSL https://cdn.coollabs.io/coolify/docker-compose.yml -o /opt/coolify/source/docker-compose.yml
curl -fsSL https://cdn.coollabs.io/coolify/docker-compose.prod.yml -o /opt/coolify/source/docker-compose.prod.yml
curl -fsSL https://cdn.coollabs.io/coolify/.env.production -o /opt/coolify/source/.env
curl -fsSL https://cdn.coollabs.io/coolify/upgrade.sh -o /opt/coolify/source/upgrade.sh
# permissions
chown -R 9999:root /opt/coolify
chmod -R 700 /opt/coolify
# gen ENVs
sed -i "s|APP_ID=.*|APP_ID=$(openssl rand -hex 16)|g" /opt/coolify/source/.env
sed -i "s|APP_KEY=.*|APP_KEY=base64:$(openssl rand -base64 32)|g" /opt/coolify/source/.env
sed -i "s|DB_PASSWORD=.*|DB_PASSWORD=$(openssl rand -base64 32)|g" /opt/coolify/source/.env
sed -i "s|REDIS_PASSWORD=.*|REDIS_PASSWORD=$(openssl rand -base64 32)|g" /opt/coolify/source/.env
sed -i "s|PUSHER_APP_ID=.*|PUSHER_APP_ID=$(openssl rand -hex 32)|g" /opt/coolify/source/.env
sed -i "s|PUSHER_APP_KEY=.*|PUSHER_APP_KEY=$(openssl rand -hex 32)|g" /opt/coolify/source/.env
sed -i "s|PUSHER_APP_SECRET=.*|PUSHER_APP_SECRET=$(openssl rand -hex 32)|g" /opt/coolify/source/.env
# create network
docker network create --attachable coolify
up & down
# start service
docker compose --env-file /opt/coolify/source/.env -f /opt/coolify/source/docker-compose.yml -f /opt/coolify/source/docker-compose.prod.yml up -d --pull always --remove-orphans --force-recreate
# down
docker compose --env-file /opt/coolify/source/.env -f /opt/coolify/source/docker-compose.yml -f /opt/coolify/source/docker-compose.prod.yml down