VPS项目搭建-集合(待修改)
条评论前言
这篇文章我会分享一些在VPS上搭建过的项目,都是一些比较有意思且实用的应用。
基本都通过 Docker Compose
来部署,并通过反代神器 Nginx Proxy Manager
来配置反向代理。
好处是不需要专业相关知识,跟着教程步骤即可搭建使用。
注意:每次新建Docker容器后,记得开放对应的端口,设置好反向代理和添加域名解析。
Docker部署项目
简单图床 EasyImage
内存占用:40M起步
安装教程:
视频【好玩儿的Docker项目】10分钟搭建一个简单图床——Easyimage哔哩哔哩bilibili
博客【好玩儿的Docker项目】10分钟搭建一个简单图床——Easyimage | 爱玩实验室 (iwanlab.com)
简易流程:
创建安装目录
1 | mkdir -p /root/data/docker_data/easyimage |
配置docker-compose.yml
version: ‘3.3’
services:
easyimage:
image: ddsderek/easyimage:latest
container_name: easyimage
ports:
- ‘8180:80’
environment:
- TZ=Asia/Shanghai
- PUID=1000
- PGID=1000
volumes:
- ‘/root/data/docker_data/easyimage/config:/app/web/config’
- ‘/root/data/docker_data/easyimage/i:/app/web/i’
restart: unless-stopped
查看端口占用,若被占用则换一个:
lsof -i:8180
启动docker compose服务
docker compose up -d
先别打开图床。
NPM配置反代。切记Details不要勾选Block Common Exploits。
在cf做好域名解析。
修改config.php
cd /root/data/docker_data/easyimage/config/config.php
#把domain和imgurl分别改成自己的域名
访问图床:IP:8180并安装。在设置中修改站点和图片URL。
动态网站 WordPress
内存占用:380M起步 无上限
安装教程:
视频【好玩儿的Docker项目】10分钟搭建美国白宫也用的博客框架——Wordpress!不过没Halo香!哔哩哔哩bilibili
博客【好玩儿的Docker项目】10分钟搭建美国白宫也用的博客框架——Wordpress-我不是咕咕鸽 (laoda.de)
扩展阅读:Docker版本安装WordPress常见问题梳理(附JustNews主题专属美化) | 爱玩实验室 (iwanlab.com)
推荐安装:插件——WP Markdown、SSL不安全内容修复器。主题——Kratos、argon
简易流程:
安装WP
mkdir -p /root/data/docker_data/wordpress
cd /root/data/docker_data/wordpress
vim docker-compose.yml
配置docker-compose.yml,参考官方文档:wordpress - Official Image | Docker Hub
version: ‘3.1’
services:
wordpress:
image: wordpress:latest
restart: always
ports:
- 8200:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
- /root/data/docker_data/wordpress/data:/var/www/html
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
MYSQL_RANDOM_ROOT_PASSWORD: ‘1’
volumes:
- /root/data/docker_data/wordpress/db:/var/lib/mysql
#volumes:
wordpress:
db:
wordpress和mysql的environment的值要一一对应。
(如果VPS的内存不大于1G,建议设置1G的SWAP。mysql占用内存比较大。)
查看端口占用,若被占用则换一个:
lsof -i:8200
启动docker compose服务
docker compose up -d
配置Nginx Proxy Manager反代
打开网站:http://VPS-IP:8200
查看Docker容器内部ID:ip addr show docker0,一般都是172.17.0.1
Add Proxy Host:
Details:
Scheme:http
Forward Hostname / IP:172.17.0.1,或者你的VPS-IP
Forward Port:8200,或者你自定义的端口注意需要与docker-compose里的一致
勾选Block Common Exploits和Websockets Support
SSL:
选择你申请的通配符SSL或者为该域名单独申请一个
全勾选
Cloudflare添加解析记录。
然后进入WP在设置->常规里把两个URL改成你的域名即可。
上传主题并安装
先打开某主题的Github地址,例如Argon主题:solstice23/argon-theme: 📖 Argon - 一个轻盈、简洁的 WordPress 主题 (github.com)并下载.zip文件,在WP主题中点击上传主题,选择压缩包并安装。
正常来讲会出错,下面来解决。
- 上传的文件尺寸超过php.ini中定义的upload_max_filesize值
默认php设置的上传文件大小为2M,我们需要调整一下。
cd /root/data/docker_data/wordpress
vim uploads.ini
在uploads.ini末尾加入以下内容
file_uploads = On
upload_max_filesize = 256M #可以自己设置大小
post_max_size = 256M #可以自己设置大小
在docker-compose.yml里WP配置的volumes添加一行内容
- /root/data/docker_data/wordpress/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
暂停并重启容器
docker-compose down
docker-compose up -d
查看修改结果
docker ps
docker exec 你的wp容器id php -i | grep upload
- 上传主题,出现“您点击的链接已过期”
cd /root/data/docker_data/wordpress/data
vim .htaccess
文本末尾空一行,添加以下内容
php_value max_execution_time 300
php_value upload_max_filesize 256M
php_value post_max_size 256M
php_value memory_limit 128M
php_value max_input_vars 5000
然后再上传主题并安装,启用主题即可。
配置redis(可选)
教程里有。
动态网站 Typecho
简单说明:比WordPress轻量
参考教程:
视频【好玩儿的Docker项目】10分钟搭建一个Typecho博客|太破口!念念不忘,必有回响!哔哩哔哩bilibili
还未尝试。
动态网站 Halo
内存占用:820M起步,因为Halo本身Java就大,还用的MYSQL8.0
参考教程:
官方文档 Halo 文档
博客 【好玩儿的Docker项目】好用又强大的开源建站工具——Halo 2.0
扩展阅读:
Halo社区:https://bbs.halo.run/
官网地址:https://halo.run/
应用市场:https://www.halo.run/store/apps
简易流程:
创建文件夹
mkdir /data/docker_data/halo
cd /data/docker_data/halo
vim docker-compose.yml
配置docker-compose.yml
version: “3”
services:
halo:
image: halohub/halo:2.13
container_name: halo
restart: on-failure:3
depends_on:
halodb:
condition: service_healthy
networks:
halo_network:
volumes:
- ./halo2:/root/.halo2
ports:
- “8090:8090”
healthcheck:
test: [“CMD”, “curl”, “-f”, “http://localhost:8090/actuator/health/readiness"]
interval: 30s
timeout: 5s
retries: 5
start_period: 30s
command:
- –spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo
- –spring.r2dbc.username=root
# MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
- –spring.r2dbc.password=o#DwN&JSa56
- –spring.sql.init.platform=mysql
# 外部访问地址,请根据实际需要修改
- –halo.external-url=http://localhost:8090/
halodb:
image: mysql:8.1.0
container_name: halodb
restart: on-failure:3
networks:
halo_network:
command:
- –default-authentication-plugin=caching_sha2_password
- –character-set-server=utf8mb4
- –collation-server=utf8mb4_general_ci
- –explicit_defaults_for_timestamp=true
volumes:
- ./mysql:/var/lib/mysql
- ./mysqlBackup:/data/mysqlBackup
ports:
- “3306”
healthcheck:
test: [“CMD”, “mysqladmin”, “ping”, “-h”, “127.0.0.1”, “–silent”]
interval: 3s
retries: 5
start_period: 30s
environment:
# 请修改此密码,并对应修改上方 Halo 服务的 SPRING_R2DBC_PASSWORD 变量值
- MYSQL_ROOT_PASSWORD=o#DwN&JSa56
- MYSQL_DATABASE=halo
networks:
halo_network:
–halo.external-url改为自己实际要用的域名;–spring.r2dbc.password和MYSQL_ROOT_PASSWORD的值要一致,自行修改;halodb的ports为3306而不是3306:3306,避免把端口暴露在公网,它会随机找一个主机空闲端口进行映射。
确认端口未被占用
lsof -i:8090
启动Docker Compose服务
docker compose up -d
NPM反代配置
先NPM配置再进行Halo安装程序。
域名与–halo.external-url一致,xxx和www.xxx,http,172.17.0.1,8090,全勾选。Force SSL
初始化Halo
打开your-VPS-IP:8090,输入对应信息进行初始化。
安装主题
Joe 3.0慕名而来。参考官方文档:https://docs.halo.run/user-guide/themes
可以选择远程下载,在主题中点击下载,输入域名即可跳转。
基本配置
需要先在设置->通知设置,设置好邮箱服务器后才能接受邮件验证码。然后去用户页验证邮箱。
主题色可改为蓝色:#2a64f6
其他内容自行折腾。
补充
更新操作
修改 docker-compose.yaml 中配置的image版本
services:
halo:
image: halohub/halo:2.13
container_name: halo
重启docker compose
docker-compose up -d
卸载操作
cd /root/data/docker_data/halo
docker-compose down
cd ..
rm -rf /root/data/docker_data/halo # 完全删除映射到本地的数据
网站监控 Uptime Kuma
内存占用:150M
参考教程:
视频【好玩的Docker项目】搭建一个专属自己的网站监控——Uptime Kuma哔哩哔哩bilibili
博客【好玩的Docker项目】搭建一个专属自己的网站监控——Uptime Kuma | 爱玩实验室 (iwanlab.com)
简易流程:
创建项目文件夹
mkdir -p /root/data/docker_data/uptimekuma
cd /root/data/docker_data/uptimekuma
vim docker-compose.yml
配置docker-compose.yml
version: ‘3.3’
services:
uptime-kuma:
image: louislam/uptime-kuma
container_name: uptime-kuma
volumes:
- ./uptime-kuma:/app/data
ports:
- 3001:3001
确认端口未被占用
lsof -i:3001
启动Docker Compose服务
docker compose up -d
打开站点:VPS-IP:3301
自行添加监控项和状态页。
NPM反代:http,172.17.0.1,3001勾选后两个。SSL勾选第一个。
Cloudflare添加解析记录。
回到Uptime Kuma,配置状态页。然后入口页面设为状态页,修改站点主URL为反代地址。
网站统计 Umami
参考教程:
视频【好玩的Docker项目】你的网站究竟有多少流量?搭建一个小而美的网站流量统计工具——Umami哔哩哔哩bilibili
博客【好玩的Docker项目】搭建一个小而美的网站流量监控——Umami | 爱玩实验室 (iwanlab.com)
简易流程:
创建项目文件夹
mkdir -p /root/data/docker_data/umami
cd /root/data/docker_data/umami
vim docker-compose.yml
配置docker-compose.yml文件:
version: ‘3’
services:
umami:
image: ghcr.io/umami-software/umami:postgresql-latest
ports:
- “3000:3000”
environment:
DATABASE_URL: postgresql://umami:umami@db:5432/umami
DATABASE_TYPE: postgresql
HASH_SALT: replace-me-with-a-random-string
depends_on:
- db
restart: always
db:
image: postgres:12-alpine
environment:
POSTGRES_DB: umami
POSTGRES_USER: umami
POSTGRES_PASSWORD: umami
volumes:
- ./sql/schema.postgresql.sql:/docker-entrypoint-initdb.d/schema.postgresql.sql:ro
- ./umami-db-data:/var/lib/postgresql/data
restart: always
检查一下端口是否被占用
lsof -i:3000
启动Docker Compose服务
docker compose up -d
访问 IP:3000 进入Umami后台。
默认账号密码是:Username: admin,Password: umami
添加网站,获得跟踪代码,在自己的网站中引入该js代码。
启用共享链接,别人可通过此链接查看网站访客统计数据。
网盘挂载 Alist
内存占用:40M
简单介绍:
支持挂载的网盘存储:本地、阿里云、百度云、谷歌云、OneDrive、蓝奏云、天翼云、迅雷云等等。
支持在线查看文件类型:文本、音频、视频、图片。
注意:Alist挂载非OneDrive和谷歌网盘,流量大了可能会封号。类似项目ZFile可以规避这个问题。
【好玩儿的Docker项目】ZFile ——又一款强大好用的在线文件目录的程序! | 爱玩实验室 (iwanlab.com)
参考教程:
视频【好玩的Docker项目】目前最好用的网盘直链程序——AList,支持市面上几乎所有网盘!可以代替Olaindex!哔哩哔哩bilibili
博客【好玩的Docker项目】目前最好用的网盘直链程序——AList,支持市面上几乎所有网盘!可以代替Olaindex! | 爱玩实验室 (iwanlab.com)
官方文档:Home | AList文档 (nn.ci)
简易流程:
创建项目文件夹
mkdir -p /root/data/docker_data/alist
cd /root/data/docker_data/alist
vim docker-compose.yml
配置docker-compose.yml文件:
version: ‘3.3’
services:
alist:
restart: always
volumes:
- ‘/root/data/docker_data/alist:/opt/alist/data’ # 冒号左边的地址可以自己修改
ports:
- ‘5244:5244’ # 冒号左边的端口可以自己修改
container_name: alist
image: ‘xhofe/alist:latest’
检查一下端口是否被占用
lsof -i:5244
启动docker-compose服务
docker compose up -d
查看Alist初始密码
docker logs alist
或者
docker exec -it alist ./alist -password
如果后续忘记密码,可以随机生成或指定
docker exec -it alist ./alist admin random
docker exec -it alist ./alist admin set xxxxxxx
找到Successfully created the admin user and the initial password is: xxxxxx,这里账号是admin,密码是xxxxx。
访问 IP:5244 进入Alist后台并登录。会报错,点击最下方的管理即可。
配置反向代理
正常配置就行了。做好域名解析。
添加存储
存储添加方式参考:通用项 | AList文档 (nn.ci)
挂载路径指的是在Alist主页列表路径,根文件夹路径指的是对应的网盘里的文件夹路径。如果是OneDrive,可以填/OneDrive和/Alist挂载(需要创建对应文件夹)。
本地存储:
先在/root/data/docker_data/alist/下创建local文件夹。
在管理面板->设置->存储,驱动:本机存储,挂载路径:/local,根文件夹路径:/opt/alist/data/local。这样VPS的/root/data/docker_data/alist/local将会成为本地云盘的文件夹,也不用搭建什么NextCloud了。
此时打开Alist主页,能看到挂载的local文件夹。
阿里云、OneDrive:看文档,一遍过,无坑。
蓝奏云:如果访问失败,复制蓝奏云的个人中心->个性域名到Alist设置里的分享链接,刷新下缓存即可(注意有的文件被删了但是目录还在,也可能是这个原因,需要自己去蓝奏云下载下看看还在不)
迅雷、天翼云:手机号验证码登录的话,需要手动设置个密码用于绑定挂载。
百度云:本身限制太多,不好用。
给文件夹加密码
先在用户->游客把停用取消勾选 。
在元信息添加路径(需要该文件夹存在),填写密码和其他信息。
换个浏览器或设备或匿名模式打开Alist主页,打开该文件夹就需要密码正确才能进入。
可以根据个人需要设置用户权限和文件夹元信息。
Docker可视化 Portainer
参考教程:
视频 【Docker系列】超级好用的Docker可视化工具——Portainer哔哩哔哩bilibili
VPS太小,还没装
其他项目
静态导航 Hexo-WebStack
参考教程:
优雅的使用Webstack打造个人网址导航-腾讯云开发者社区-腾讯云 (tencent.com)
通过Nginx Proxy Manager代理静态网站(例如Hexo) – 卢孟德的学习小站 (lumengde.com)
更新Docker
以下是通常情况下的更新指令
cd /root/data/docker_data/xxxx
docker-compose pull
docker compose up -d # 请不要使用 docker-compose stop 来停止容器,因为这么做需要额外的时间等待容器停止;docker compose up -d 直接升级容器时会自动停止并立刻重建新的容器,完全没有必要浪费那些时间。
docker image prune # prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像
卸载Docker
cd /root/data/docker_data/xxxx
docker-compose down
cd ..
rm -rf /root/data/docker_data/xxxx # 完全删除
本文标题:VPS项目搭建-集合(待修改)
文章作者:德德
发布时间:2024-06-14
最后更新:2024-06-17
原始链接:https://lumengde123.github.io/posts/9437.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!