155 lines
3.7 KiB
YAML
155 lines
3.7 KiB
YAML
networks:
|
|
default:
|
|
external:
|
|
name: my_network
|
|
|
|
services:
|
|
nginx:
|
|
image: 'jc21/nginx-proxy-manager:latest'
|
|
restart: unless-stopped
|
|
ports:
|
|
- '80:80' # Public HTTP Port
|
|
- '443:443' # Public HTTPS Port
|
|
- '81:81' # Admin Web Port
|
|
environment:
|
|
# Mysql/Maria connection parameters:
|
|
DB_MYSQL_HOST: "db"
|
|
DB_MYSQL_PORT: 3306
|
|
DB_MYSQL_USER: "npm"
|
|
DB_MYSQL_PASSWORD: "npm"
|
|
DB_MYSQL_NAME: "npm"
|
|
DISABLE_IPV6: 'true'
|
|
volumes:
|
|
- /mnt/docker/nginx:/data
|
|
- /mnt/docker/letsencrypt:/etc/letsencrypt
|
|
depends_on:
|
|
- db
|
|
|
|
db:
|
|
image: 'jc21/mariadb-aria:latest'
|
|
restart: unless-stopped
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: 'npm'
|
|
MYSQL_DATABASE: 'npm'
|
|
MYSQL_USER: 'npm'
|
|
MYSQL_PASSWORD: 'npm'
|
|
MARIADB_AUTO_UPGRADE: '1'
|
|
volumes:
|
|
- /mnt/docker/mysql:/var/lib/mysql
|
|
|
|
redis:
|
|
image: redis/redis-stack:latest
|
|
restart: unless-stopped
|
|
ports:
|
|
- 6379:6379
|
|
- 8001:8001
|
|
volumes:
|
|
- /mnt/docker/redis:/data
|
|
environment:
|
|
- REDIS_ARGS=--appendonly yes
|
|
|
|
mongo:
|
|
image: mongo
|
|
restart: unless-stopped
|
|
ports:
|
|
- 27017:27017
|
|
environment:
|
|
MONGO_INITDB_ROOT_USERNAME: root
|
|
MONGO_INITDB_ROOT_PASSWORD: example
|
|
volumes:
|
|
- /mnt/docker/mongodb:/data/db
|
|
- /mnt/docker/configdb:/data/configdb
|
|
|
|
mongo-express:
|
|
image: mongo-express
|
|
restart: unless-stopped
|
|
environment:
|
|
ME_CONFIG_MONGODB_ADMINUSERNAME: root
|
|
ME_CONFIG_MONGODB_ADMINPASSWORD: example
|
|
ME_CONFIG_MONGODB_URL: mongodb://root:example@mongo:27017/
|
|
ME_CONFIG_BASICAUTH: false
|
|
|
|
hello:
|
|
image: docker.yauk.tv/streamlit
|
|
restart: unless-stopped
|
|
|
|
|
|
minio:
|
|
image: quay.io/minio/minio
|
|
restart: unless-stopped
|
|
ports:
|
|
- "9000:9000"
|
|
volumes:
|
|
- /mnt/ssd/.minio:/data
|
|
command: server /data --console-address ":9001"
|
|
|
|
registry:
|
|
image: registry:2
|
|
restart: unless-stopped
|
|
volumes:
|
|
- /mnt/docker/registry:/var/lib/registry
|
|
|
|
cdn:
|
|
image: node:slim
|
|
volumes:
|
|
- /mnt/docker/cdn:/app
|
|
entrypoint: sh -c
|
|
command:
|
|
- |
|
|
cd /app
|
|
cat <<"EOF" > server.js
|
|
const express = require('express');
|
|
const cors = require('cors');
|
|
const path = require('path');
|
|
const fs = require('fs');
|
|
const app = express();
|
|
const PORT = 8000;
|
|
|
|
app.use(cors());
|
|
app.use(express.static(path.join(__dirname, 'node_modules')));
|
|
|
|
// 기본 라우트
|
|
app.get('/', (req, res) => {
|
|
res.send('Hello, World! Use /<filename> to access files.');
|
|
});
|
|
|
|
|
|
app.get('/:filename', (req, res) => {
|
|
const filePath = path.join(__dirname, req.params.filename);
|
|
fs.access(filePath, fs.constants.F_OK, (err) => {
|
|
if (err) {
|
|
return res.status(404).send('File not found');
|
|
}
|
|
res.sendFile(filePath);
|
|
});
|
|
});
|
|
app.listen(PORT, () => { console.log('Server is running on http://localhost:' + PORT); });
|
|
EOF
|
|
|
|
npm init -y
|
|
npm i express cors pretendard @picocss/pico
|
|
node server.js
|
|
|
|
wg-easy:
|
|
image: ghcr.io/wg-easy/wg-easy
|
|
environment:
|
|
- LANG=ko
|
|
- WG_HOST=192.168.12.2
|
|
- WEBUI_HOST=wg-easy
|
|
- PASSWORD_HASH='REDACTED'
|
|
- PORT=51821
|
|
- WG_PORT=51820
|
|
- WG_DEFAULT_DNS=
|
|
- WG_PERSISTENT_KEEPALIVE=25
|
|
- WG_ALLOWED_IPS=10.8.0.0/24
|
|
volumes:
|
|
- ~/.wg-easy:/etc/wireguard
|
|
ports:
|
|
- "51820:51820/udp"
|
|
restart: unless-stopped
|
|
cap_add:
|
|
- NET_ADMIN
|
|
- SYS_MODULE
|
|
sysctls:
|
|
- net.ipv4.ip_forward=1
|
|
- net.ipv4.conf.all.src_valid_mark=1 |