# 环境要求
Docker20+
docker-compose
开始前请设置一个别名:vim .bashrc
alias dc="docker-compose"
alias dcd="dc down"
alias dcup="dc up -d"
# minio - 9001
MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=admin666
MINIO_ACCESS_KEY=admin
MINIO_SECRET_KEY=admin666
minio_api_port=9000
minio_port=9001
minio_data=./minio/data
minio_config=./minio/config
dc up -d minio
# prometheus - 9090
官网: https://prometheus.io/
启动
dc up -d prometheus
配置文件
prometheus_port=9090
prometheus_config=./prometheus/config
# syncthing - 8384
数据同步
启动
dc up -d syncthing
配置文件
syncthing_name=syncthing
syncthing_web_port=8384
syncthing_path=./syncthing
# aria2 - 6885
下载工具
启动
dc up -d aria2
Tip:打开页面提示认证失败,自行修改 RPC连接
配置
AriaNG设置》tab切换到 RPC
配置 Aria2 RPC秘钥:admin666
Ariang访问端口: 6885
# merlisearch - 7700
启动
dc up -d meilisearch
配置文件说明
# meilisearch
meilisearch_port=7700 # web访问地址
meilisearch_key=admin666 # 秘钥
meilisearch_data=./meilisearch # 数据存储地址
# PanIndex - 5238
网盘管理工具
启动
dc up -d panindex
初始密码:PanIndex
配置文件
panindex_port=5238 # web访问端口
panindex_data=./panindex/data # 数据库地址
panindex_share_path=/home/orangbus/Videos # docker本地目录地址,网盘不需要设置:/share
# httpbin - 8085
dc up -d httpbin
# traefik - 8012
负载均衡
启动
dc up -d traefik
配置文件
traefik_port=8011
traefik_dashbord_port=8012 #后台面板地址
traefik_https_port=443
# filebrowser - 8010
文件管理
启动
dc up -d filebrowser
配置文件
filebrowser_port=8010 # 访问端口
filebrowser_data=./data # 文件存储路径
# cloudreve - 5212
文件管理
启动
dc up -d cloudreve
配置文件
cloudreve_port=5212 # web访问端口
cloudreve_uploads=./data #./cloudreve/uploads
cloudreve_config=./cloudreve/config
cloudreve_db=./cloudreve/db
cloudreve_avatar=./cloudreve/avatar
# nextcloud- 5212
文件管理
启动
dc up -d nextcloud
配置文件
nextcloud_port=8090
nextcloud_data=./nextcloud
nextcloud_user=orangbus
nextcloud_password=orangbus666
nextcloud_database=nextcloud
# v2raya
docker run -d \
--restart=always \
--privileged \
--network=host \
--name v2raya \
-e V2RAYA_LOG_FILE=/tmp/v2raya.log \
-v /lib/modules:/lib/modules:ro \
-v /etc/resolv.conf:/etc/resolv.conf \
-v /etc/v2raya:/etc/v2raya \
mzz2017/v2raya
docker run -d --restart=always --privileged --network=host --name v2raya -e V2RAYA_LOG_FILE=/tmp/v2raya.log -v /lib/modules:/lib/modules:ro -v /etc/resolv.conf:/etc/resolv.conf -v /etc/v2raya:/etc/v2raya mzz2017/v2raya
# gpt国内镜像
docker run -e PANDORA_CLOUD=cloud -e PANDORA_SERVER=0.0.0.0:8899 -p 8899:8899 -d pengzhile/pandora
version: "3"
services:
pandora:
image: pengzhile/pandora
container_name: pandora
environment:
- PANDORA_CLOUD=cloud
- PANDORA_SERVER=0.0.0.0:8899
restart: always
ports:
- "8899:8899"
# seafile
mysql_data=./data/mysql
mysql_port=3307
mysql_password=@mysql666
seafile_port=10800
seafile_data=/data/seafile
seafile_admin_email=1353727504@qq.com
seafile_admin_password=@admin666
seafile_admin_host=sync.home.com
version: "3.5"
networks:
backend:
driver: bridge
services:
db:
image: mariadb:10.5
container_name: seafile-mysql
environment:
- MYSQL_ROOT_PASSWORD=${mysql_password} # Requested, set the root's password of MySQL service.
- MYSQL_LOG_CONSOLE=true
volumes:
- ${mysql_data}:/var/lib/mysql:rw # Requested, specifies the path to MySQL data persistent store.
networks:
- backend
memcached:
image: memcached
container_name: seafile-memcached
entrypoint: memcached -m 256
networks:
- backend
seafile:
image: seafileltd/seafile-mc:latest
container_name: seafile
ports:
- "${seafile_port}:80"
# - "443:443"
volumes:
- ${seafile_data}:/shared:rw
environment:
- DB_HOST=db
- DB_ROOT_PASSWD=${mysql_password}
- SEAFILE_ADMIN_EMAIL=${seafile_admin_email}
- SEAFILE_ADMIN_PASSWORD=${seafile_admin_password}
- SEAFILE_SERVER_LETSENCRYPT=false
- SEAFILE_SERVER_HOSTNAME=${seafile_admin_host}
- TIME_ZONE=Etc/UTC
depends_on:
- memcached
networks:
- backend
# gitea
version: "3"
networks:
gitea:
external: false
services:
gitea:
image: gitea/gitea:1.19.0
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=gitea
restart: always
networks:
- gitea
volumes:
- ./data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "222:22"
depends_on:
- db
db:
image: postgres:14
restart: always
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=gitea
- POSTGRES_DB=gitea
networks:
- gitea
volumes:
- ./postgres:/var/lib/postgresql/data
# aria2
version: "3.5"
services:
aria2:
image: superng6/aria2
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
- "SECRET=${token}" #Aria2 token
volumes:
- "${aria2_config}:/config"
- "${aria2_downloads}:/downloads"
network_mode: host
ariang:
image: superng6/ariang:latest
ports:
- "${ariang_port}:80"
depends_on:
- aria2
# .env
aria2_config=./aria2/config # 配置目录
#aria2_downloads=./aria2/downloads # 文件下载保存目录
aria2_downloads=/data/PanFile/Download # 这里我把下载的资料通过 filebrowser 来管理
ariang_port=6885 # ariang:web访问端口
token=admin666
# goaccess
docker pull allinurl/goaccess
cat /www/wwwlogs/api.movie.com.log | docker run --rm -i -e LANG=$LANG allinurl/goaccess -a -o html --log-format COMBINED - > /www/wwwroot/nginx.com/index.html
# frp
# 服务器端
version: "3.5"
services:
serve:
image: snowdreamtech/frps
restart: unless-stopped
container_name: frps-server
network_mode: host
ports:
- "7700:7700"
- "7800:7800"
environment:
- PUID=1000
- PGID=1000
volumes:
- ./frps.ini:/etc/frp/frps.ini
frps.ini
[common]
bind_port = 7700
authentication_method = token
token = admin666
# 面板端口
dashboard_port = 8700
dashboard_addr = 0.0.0.0
# 登录面板账号设置
dashboard_user = admin
dashboard_pwd = admin666
# 设置http及https协议下代理端口(非重要)
vhost_http_port = 8800
vhost_https_port = 8900
# 客户端
version: "3.5"
services:
client:
image: snowdreamtech/frpc
restart: unless-stopped
container_name: frpc-client
network_mode: host
environment:
- PUID=1000
- PGID=1000
volumes:
- ./frpc.ini:/etc/frp/frpc.ini
[common]
server_addr = 162.14.72.65
server_port = 7700
authentication_method = token
token = admin666
[company_ssh]
type = tcp
local_ip = 192.168.110.136
local_port = 22
remote_port = 7701
[company_ftp]
type = tcp
local_ip = 192.168.110.136
local_port = 21
remote_port = 7702
[company_baota]
type = tcp
local_ip = 192.168.110.136
local_port = 10086
remote_port = 7703
[company_web]
type = tcp
local_ip = 192.168.110.136
local_port = 80
remote_port = 10001
[company_elasticsearch]
type = tcp
local_ip = 192.168.110.136
local_port = 9200
remote_port = 10002
[company_kibana]
type = tcp
local_ip = 192.168.110.136
local_port = 5601
remote_port = 10003
[company_jellfin]
type = tcp
local_ip = 192.168.110.136
local_port = 8096
remote_port = 10004
[company_panindex]
type = tcp
local_ip = 192.168.110.136
local_port = 5238
remote_port = 10005
ssh链接方式
ssh -oPort=remote_port 远程服务器账号@frp服务器ip
ssh -oPort=20001 orangbus@162.14.72.65
# nginx-manager
version: "3.5"
networks:
backend:
driver: bridge
services:
proxy:
image: jc21/nginx-proxy-manager:latest
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./proxy/data:/data
- ./proxy/letsencrypt:/etc/letsencrypt
# hbase
version: "3.5"
services:
hbase:
image: harisekhon/hbase:latest
container_name: hbase
restart: always
network_mode: bridge
ports:
- "2181:2181"
- "16010:16010"
volumes:
- ./data:/data
# Jellyfin
version: '3.5'
services:
jellyfin:
image: jellyfin/jellyfin
container_name: jellyfin
restart: 'unless-stopped'
user: uid:gid
network_mode: 'host'
volumes:
- ./data/jellyfin/config:/config
- ./data/jellyfin/cache:/cache
- ${jellyfin_data}:/media:ro
environment:
- JELLYFIN_PublishedServerUrl=http://example.com
extra_hosts:
- "host.docker.internal:host-gateway"
jellyfin_data=/data/jellyfin # 8096