# 环境要求

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

官网:https://www.meilisearch.com

启动

dc up -d meilisearch

配置文件说明

# meilisearch
meilisearch_port=7700 # web访问地址
meilisearch_key=admin666 # 秘钥
meilisearch_data=./meilisearch # 数据存储地址

# PanIndex - 5238

项目地址:https://libsgh.github.io/PanIndex

网盘管理工具

启动

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

image-20230815165106295

# 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