Compare commits

...

8 Commits

Author SHA1 Message Date
44356e5bd2 add umami and planka 2026-01-02 21:02:47 +08:00
31249322ec update nocobase 2025-12-23 00:06:38 +08:00
7b7ca65cb4 add readme 2025-12-22 17:55:09 +08:00
cb28f93bb4 fix nocobase pwd 2025-12-22 17:55:01 +08:00
59520afad5 update wikijs pwd 2025-12-22 15:24:10 +08:00
1e588d06cf update nocobase 2025-12-22 15:23:45 +08:00
1e1c0a520c add nocobase 2025-12-21 17:39:05 +08:00
e149fba24f add next-terminal 2025-12-20 08:41:01 +08:00
9 changed files with 353 additions and 2 deletions

3
README.md Normal file
View File

@@ -0,0 +1,3 @@
# 开源软件Docker部署脚本大全
本仓库保存经过测试的开源软件Docker部署脚本确保一次就可以部署成功所有密码均为工具生成。

43
next-terminal/config.yaml Normal file
View File

@@ -0,0 +1,43 @@
Database:
Enabled: true
Type: postgres
Postgres:
Hostname: postgresql
Port: 5432
Username: next-terminal
Password: 6j3q0hbku7e5
Database: next-terminal
ShowSql: false
log:
Level: debug # 日志等级 debug,info,waring,error
Filename: ./logs/nt.log
Server:
Addr: "0.0.0.0:8088"
App:
Website:
AccessLog: "./logs/access.log" # web 资产的访问日志路径
Recording:
Type: "local" # 录屏文件存储位置,可选 local, s3
Path: "/usr/local/next-terminal/data/recordings"
Guacd:
Drive: "/usr/local/next-terminal/data/drive"
Hosts:
- Hostname: guacd
Port: 4822
Weight: 1
# 反向代理配置,详情参考 https://docs.next-terminal.typesafe.cn/install/config-desc.html
ReverseProxy:
Enabled: false # 是否启用反向代理
HttpEnabled: true # 是否启用 http 反向代理
HttpAddr: ":80" # http 监听地址
HttpRedirectToHttps: false # 是否强制 http 访问转为 https
HttpsEnabled: true # 是否启用 https 反向代理
HttpsAddr: ":443" # https 监听地址
SelfProxyEnabled: true # 是否启用自代理
SelfDomain: "nt.yourdomain.com" # 自代理域名SelfProxyEnabled 为 true 时生效
Root: "" # 系统根路径SelfProxyEnabled 为 flase 时生效。示例https://nt.yourdomain.com
IpExtractor: "direct" # ip 提取方式,可选 direct, x-forwarded-for, x-real-ip
IpTrustList: # 信任的IP地址列表
- "0.0.0.0/0"

View File

@@ -0,0 +1,32 @@
services:
guacd:
container_name: guacd
image: registry.cn-beijing.aliyuncs.com/dushixiang/guacd:latest
volumes:
- ./data:/usr/local/next-terminal/data
restart: always
postgresql:
container_name: postgresql
image: registry.cn-beijing.aliyuncs.com/dushixiang/postgres:16.4
environment:
POSTGRES_DB: next-terminal
POSTGRES_USER: next-terminal
POSTGRES_PASSWORD: next-terminal
volumes:
- ./data/postgresql:/var/lib/postgresql/data
restart: always
next-terminal:
container_name: next-terminal
image: registry.cn-beijing.aliyuncs.com/dushixiang/next-terminal:latest
ports:
- "8088:8088" # Web管理界面
- "2022:2022" # SSH Server 端口 (可选)
volumes:
- /etc/localtime:/etc/localtime:ro
- ./data:/usr/local/next-terminal/data
- ./logs:/usr/local/next-terminal/logs
- ./config.yaml:/etc/next-terminal/config.yaml
depends_on:
- postgresql
- guacd
restart: always

9
nocobase/README.md Normal file
View File

@@ -0,0 +1,9 @@
# NocoBase配置
下载:`wget https://git.ossdate.com/fivemoons/oss-scripts/raw/branch/main/nocobase/docker-compose.yml`
启动:`docker compose up -d`
启动后使用浏览器打开:`http://IP:13000`
默认用户名和密码为`admin@nocobase.com``admin123`

View File

@@ -0,0 +1,53 @@
networks:
nocobase:
driver: bridge
services:
app:
# Latest为稳定版Beta为测试版Alpha为开发版
image: registry.cn-shanghai.aliyuncs.com/nocobase/nocobase:latest-full
restart: always
networks:
- nocobase
depends_on:
- mariadb
environment:
# 应用的密钥,用于生成用户 token 等
# 如果 APP_KEY 修改了,旧的 token 也会随之失效
# 可以是任意随机字符串,并确保不对外泄露
- APP_KEY=your-secret-key
# 数据库类型,支持 postgres, mysql, mariadb
- DB_DIALECT=mariadb
# 数据库主机,可以替换为已有的数据库服务器 IP
- DB_HOST=mariadb
# Database port
- DB_PORT=3306
# 数据库名
- DB_DATABASE=nocobase
# 数据库用户
- DB_USER=root
# 数据库密码
- DB_PASSWORD=ggo4fnk1748e
# 数据库表名、字段名是否转为 snake case 风格
- DB_UNDERSCORED=true
# 时区
- TZ=Asia/Shanghai
volumes:
- ./storage:/app/nocobase/storage
ports:
- '13000:80'
# init: true
# 如果使用已有数据库服务,可以不启动 mariadb
mariadb:
image: registry.cn-shanghai.aliyuncs.com/nocobase/mariadb:11
environment:
MYSQL_DATABASE: nocobase
MYSQL_USER: nocobase
MYSQL_PASSWORD: m3d1c6eea8uw
MYSQL_ROOT_PASSWORD: ggo4fnk1748e
restart: always
volumes:
- ./storage/db/mariadb:/var/lib/mysql
networks:
- nocobase

View File

@@ -0,0 +1,50 @@
services:
planka:
image: ghcr.io/plankanban/planka:1.26.3
restart: on-failure
volumes:
- ./user-avatars:/app/public/user-avatars
- ./project-background-images:/app/public/project-background-images
- ./attachments:/app/private/attachments
ports:
- 3000:1337
environment:
- BASE_URL=http://localhost:3000
- DATABASE_URL=postgresql://postgres@postgres/planka
- SECRET_KEY=fcd418de1fcc0fd57d06971659f8d2d087148edf2d740f00e50a6f25ec8b2cbfa5dbb73ed51a24eb84ea4fcb0a0188552ba301fd6372cf045d9cc0fb7d8e2c11
# - LOG_LEVEL=warn
# - TRUST_PROXY=0
# - TOKEN_EXPIRES_IN=365 # In days
# related: https://github.com/knex/knex/issues/2354
# As knex does not pass query parameters from the connection string we
# have to use environment variables in order to pass the desired values, e.g.
# - PGSSLMODE=<value>
# Configure knex to accept SSL certificates
# - KNEX_REJECT_UNAUTHORIZED_SSL_CERTIFICATE=false
- DEFAULT_ADMIN_EMAIL=demo@demo.demo # 修改管理员邮箱
- DEFAULT_ADMIN_PASSWORD=demo # 修改管理员密码
- DEFAULT_ADMIN_NAME=Demo Demo
- DEFAULT_ADMIN_USERNAME=demo # 修改管理员用户名
depends_on:
postgres:
condition: service_healthy
postgres:
image: postgres:16-alpine
restart: on-failure
volumes:
- ./db-data:/var/lib/postgresql/data
environment:
- POSTGRES_DB=planka
- POSTGRES_HOST_AUTH_METHOD=trust
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres -d planka"]
interval: 10s
timeout: 5s
retries: 5

View File

@@ -0,0 +1,127 @@
services:
planka:
image: ghcr.io/plankanban/planka:2.0.0-rc.4
restart: on-failure
# 需对文件夹授权chown -R 1000:1000 /home/planka/
volumes:
- ./favicons:/app/public/favicons
- ./user-avatars:/app/public/user-avatars
- ./background-images:/app/public/background-images
- ./attachments:/app/private/attachments
ports:
- 3000:1337
environment:
- BASE_URL=http://localhost:3000
- DATABASE_URL=postgresql://postgres@postgres/planka
# Optionally store the database password in secrets:
# - DATABASE_URL=postgresql://postgres:$${DATABASE_PASSWORD}@postgres/planka
# - DATABASE_PASSWORD__FILE=/run/secrets/database_password
# And add the following to the service:
# secrets:
# - database_password
- SECRET_KEY=notsecretkey # 执行openssl rand -hex 64
# Optionally store in secrets - then SECRET_KEY should not be set
# - SECRET_KEY__FILE=/run/secrets/secret_key
# - LOG_LEVEL=warn
# - TRUST_PROXY=true
# - MAX_UPLOAD_FILE_SIZE=
# - TOKEN_EXPIRES_IN=365 # In days
# related: https://github.com/knex/knex/issues/2354
# As knex does not pass query parameters from the connection string,
# we have to use environment variables in order to pass the desired values, e.g.
# - PGSSLMODE=<value>
# Configure knex to accept SSL certificates
# - KNEX_REJECT_UNAUTHORIZED_SSL_CERTIFICATE=false
# The default application language used as a fallback when a user's language is not set.
# This language is also used for per-board notifications.
# - DEFAULT_LANGUAGE=en-US
# Do not comment out DEFAULT_ADMIN_EMAIL if you want to prevent this user from being edited/deleted
# - DEFAULT_ADMIN_EMAIL=demo@demo.demo
# - DEFAULT_ADMIN_PASSWORD=demo
# Optionally store in secrets - then DEFAULT_ADMIN_PASSWORD should not be set
# - DEFAULT_ADMIN_PASSWORD__FILE=/run/secrets/default_admin_password
# - DEFAULT_ADMIN_NAME=Demo Demo
# - DEFAULT_ADMIN_USERNAME=demo
# - INTERNAL_ACCESS_TOKEN=
# - STORAGE_LIMIT=
# - ACTIVE_USERS_LIMIT=
# - CUSTOMER_PANEL_URL=
# Set to true to show more detailed authentication error messages.
# It should not be enabled without a rate limiter for security reasons.
# - SHOW_DETAILED_AUTH_ERRORS=false
# - S3_ENDPOINT=
# - S3_REGION=
# - S3_ACCESS_KEY_ID=
# - S3_SECRET_ACCESS_KEY=
# Optionally store in secrets - then S3_SECRET_ACCESS_KEY should not be set
# - S3_SECRET_ACCESS_KEY__FILE=/run/secrets/s3_secret_access_key
# - S3_BUCKET=
# - S3_FORCE_PATH_STYLE=true
# - OIDC_ISSUER=
# - OIDC_CLIENT_ID=
# - OIDC_CLIENT_SECRET=
# Optionally store in secrets - then OIDC_CLIENT_SECRET should not be set
# - OIDC_CLIENT_SECRET__FILE=/run/secrets/oidc_client_secret
# - OIDC_USE_OAUTH_CALLBACK=true
# - OIDC_ID_TOKEN_SIGNED_RESPONSE_ALG=
# - OIDC_USERINFO_SIGNED_RESPONSE_ALG=
# - OIDC_SCOPES=openid email profile
# - OIDC_RESPONSE_MODE=fragment
# - OIDC_USE_DEFAULT_RESPONSE_MODE=true
# - OIDC_ADMIN_ROLES=admin
# - OIDC_PROJECT_OWNER_ROLES=project_owner
# - OIDC_BOARD_USER_ROLES=board_user
# - OIDC_CLAIMS_SOURCE=userinfo
# - OIDC_EMAIL_ATTRIBUTE=email
# - OIDC_NAME_ATTRIBUTE=name
# - OIDC_USERNAME_ATTRIBUTE=preferred_username
# - OIDC_ROLES_ATTRIBUTE=groups
# - OIDC_IGNORE_USERNAME=true
# - OIDC_IGNORE_ROLES=true
# - OIDC_ENFORCED=true
# Email Notifications (https://nodemailer.com/smtp/)
# These values override and disable configuration in the UI if set.
# - SMTP_HOST=
# - SMTP_PORT=587
# - SMTP_NAME=
# - SMTP_SECURE=true
# - SMTP_TLS_REJECT_UNAUTHORIZED=false
# - SMTP_USER=
# - SMTP_PASSWORD=
# Optionally store in secrets - then SMTP_PASSWORD should not be set
# - SMTP_PASSWORD__FILE=/run/secrets/smtp_password
# - SMTP_FROM="Demo Demo" <demo@demo.demo>
# Using Gravatar directly exposes user IPs and hashed emails to a third party (GDPR risk).
# Use a proxy you control for privacy, or leave commented out or empty to disable.
# - GRAVATAR_BASE_URL=https://www.gravatar.com/avatar/
depends_on:
postgres:
condition: service_healthy
postgres:
image: postgres:16-alpine
restart: on-failure
volumes:
- ./db-data:/var/lib/postgresql/data
environment:
- POSTGRES_DB=planka
- POSTGRES_HOST_AUTH_METHOD=trust
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres -d planka"]
interval: 10s
timeout: 5s
retries: 5

34
umami/docker-compose.yml Normal file
View File

@@ -0,0 +1,34 @@
services:
umami:
image: umami-software/umami:3.0.3
ports:
- "3000:3000"
environment:
DATABASE_URL: postgresql://umami:umami@db:5432/umami # 修改密码
APP_SECRET: replace-me-with-a-random-string
depends_on:
db:
condition: service_healthy
init: true
restart: always
healthcheck:
test: ["CMD-SHELL", "curl http://localhost:3000/api/heartbeat"]
interval: 5s
timeout: 5s
retries: 5
db:
image: postgres:15-alpine
environment:
POSTGRES_DB: umami
POSTGRES_USER: umami
POSTGRES_PASSWORD: umami # 修改密码
volumes:
- umami-db-data:/var/lib/postgresql/data
restart: always
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 5s
timeout: 5s
retries: 5
volumes:
umami-db-data:

View File

@@ -4,7 +4,7 @@ services:
image: postgres:15-alpine image: postgres:15-alpine
environment: environment:
POSTGRES_DB: wiki POSTGRES_DB: wiki
POSTGRES_PASSWORD: 6vmoedxq9c POSTGRES_PASSWORD: 6vmoedxq9c # 修改密码,此处为工具生成
POSTGRES_USER: wikijs POSTGRES_USER: wikijs
logging: logging:
driver: none driver: none
@@ -21,7 +21,7 @@ services:
DB_HOST: db DB_HOST: db
DB_PORT: 5432 DB_PORT: 5432
DB_USER: wikijs DB_USER: wikijs
DB_PASS: 6vmoedxq9c DB_PASS: 6vmoedxq9c # 修改密码同第7行
DB_NAME: wiki DB_NAME: wiki
restart: unless-stopped restart: unless-stopped
ports: ports: