mirror of
https://github.com/okxlin/appstore.git
synced 2026-09-24 00:01:00 +00:00
113 lines
3.1 KiB
YAML
113 lines
3.1 KiB
YAML
services:
|
|
misskey:
|
|
image: "misskey/misskey:2026.6.0"
|
|
container_name: ${CONTAINER_NAME}
|
|
user: root
|
|
restart: always
|
|
depends_on:
|
|
misskey-db:
|
|
condition: service_healthy
|
|
misskey-redis:
|
|
condition: service_healthy
|
|
networks:
|
|
- 1panel-network
|
|
- misskey-network
|
|
ports:
|
|
- "${PANEL_APP_PORT_HTTP}:3000"
|
|
entrypoint:
|
|
- /bin/bash
|
|
- -c
|
|
command:
|
|
- |
|
|
set -e
|
|
install -d -o misskey -g misskey -m 755 /misskey/.config /misskey/files
|
|
node <<'NODE'
|
|
const fs = require('fs');
|
|
const required = (name) => {
|
|
const value = process.env[name];
|
|
if (!value) {
|
|
throw new Error(name + ' is required');
|
|
}
|
|
return value;
|
|
};
|
|
const quoted = (value) => JSON.stringify(value);
|
|
const config = [
|
|
'url: ' + quoted(required('MISSKEY_URL')),
|
|
'port: 3000',
|
|
'setupPassword: ' + quoted(required('MISSKEY_SETUP_PASSWORD')),
|
|
'db:',
|
|
' host: misskey-db',
|
|
' port: 5432',
|
|
' db: misskey',
|
|
' user: misskey',
|
|
' pass: ' + quoted(required('POSTGRES_PASSWORD')),
|
|
'dbReplications: false',
|
|
'redis:',
|
|
' host: misskey-redis',
|
|
' port: 6379',
|
|
'fulltextSearch:',
|
|
' provider: sqlLike',
|
|
"id: 'aidx'",
|
|
'proxyBypassHosts:',
|
|
' - api.deepl.com',
|
|
' - api-free.deepl.com',
|
|
''
|
|
].join('\n');
|
|
fs.writeFileSync('/misskey/.config/default.yml', config, { mode: 0o600 });
|
|
NODE
|
|
chown -R misskey:misskey /misskey/.config /misskey/files
|
|
export HOME=/misskey USER=misskey LOGNAME=misskey
|
|
exec setpriv --reuid=misskey --regid=misskey --init-groups /usr/bin/tini -- pnpm run migrateandstart
|
|
environment:
|
|
- TZ=${TZ}
|
|
- MISSKEY_URL=${MISSKEY_URL}
|
|
- MISSKEY_SETUP_PASSWORD=${MISSKEY_SETUP_PASSWORD}
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
volumes:
|
|
- "${APP_DATA_DIR}/config:/misskey/.config"
|
|
- "${APP_DATA_DIR}/files:/misskey/files"
|
|
labels:
|
|
createdBy: "Apps"
|
|
|
|
misskey-db:
|
|
image: "postgres:18-alpine"
|
|
container_name: ${CONTAINER_NAME}-db
|
|
restart: always
|
|
networks:
|
|
- misskey-network
|
|
environment:
|
|
- POSTGRES_DB=misskey
|
|
- POSTGRES_USER=misskey
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
volumes:
|
|
- "${APP_DATA_DIR}/postgres:/var/lib/postgresql"
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U misskey -d misskey"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 10
|
|
labels:
|
|
createdBy: "Apps"
|
|
|
|
misskey-redis:
|
|
image: "redis:7-alpine"
|
|
container_name: ${CONTAINER_NAME}-redis
|
|
restart: always
|
|
networks:
|
|
- misskey-network
|
|
volumes:
|
|
- "${APP_DATA_DIR}/redis:/data"
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 10
|
|
labels:
|
|
createdBy: "Apps"
|
|
|
|
networks:
|
|
1panel-network:
|
|
external: true
|
|
misskey-network:
|
|
driver: bridge
|