Contents
使用Ubuntu18.04 或 Archlinux
安装常用软件
有些软件本次没用到
#Ubuntu安装常用软件
sudo apt-get update && apt install htop curl unzip \
byobu git zsh vim screenfetch neofetch python \
lsof psmisc bmon net-tools
#ArchLinuxCN源
sudo nano /etc/pacman.d/mirrorlist
#添加:
[archlinuxcn]
Server = https://cdn.repo.archlinuxcn.org/$arch
# 安装Key
sudo pacman -Syy && sudo pacman -S archlinuxcn-keyring
# Archlinux安装常用软件
pacman -S openssh proxychains fish curl unzip \
python3 python2 zsh git htop iftop screenfetch \
neofetch emacs ntfs-3g vim sudo net-tools lsof psmisc bmon samba
# zerotier,内网穿透
curl -s https://install.zerotier.com/ | sudo bash
# 设置时区为上海
sudo timedatectl set-timezone Asia/Shanghai
# ohmyzsh,事前需要安装zsh、git
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
安装Docker
参考 https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce
# Ubuntu 18.04 安装Docker-ce
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# Archlinux
sudo pacman -S docker
sudo groupadd docker
sudo usermod -aG docker $USER
sudo systemctl enable docker
sudo systemctl restart docker
# 创建docker本地文件存储文件夹,接下来会用到
mkdir /root/docker/ && mkdir /root/docker/wordpress \
&& mkdir /root/docker/nextcloud/ && mkdir /root/docker/nextcloud/config \
&& mkdir /root/docker/nextcloud/data && mkdir /root/docker/gogs
Docker基本操作
#列出容器
docker ps
#进入某个容器
docker exec -it wordpress bash
# 解决wordpress文件权限不对、无法升级的问题,用户组与路径按实际情况情况,未必是“www-data”或 “/var/www/html”。
sudo chown -R www-data /var/www/html
sudo chmod +755 /var/www/html
#列出容器
docker ps
#进入某个docker容器
docker exec -it somedocker bash
安装Docker-compose
最新版本参照 https://github.com/docker/compose/releases
# 这里安装的是目前最新的1.24.1版
sudo curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
配置Docker-compose
docker-compose.yml,把这个文件上传到/root/docker/ 文件夹下面
version: "3"
volumes:
mariadb_data:
phpmyadmin_data:
nextcloud_data:
services:
# 数据库 mariadb
mariadb_for_all:
image: mariadb
container_name: mariadb_for_all
restart: always
volumes:
- mariadb_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: "替换为你想使用的密码"
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: 替换为你想使用的密码
#数据库管理 phpMyAdmin https://hub.docker.com/r/phpmyadmin/phpmyadmin
phpmyadmin:
depends_on:
- mariadb_for_all
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
restart: always
ports:
- "9081:80"
volumes:
- phpmyadmin_data:/sessions
environment:
MYSQL_ROOT_PASSWORD: 替换为你想使用的密码
# 博客 wordpress https://hub.docker.com/_/wordpress/
wordpress:
depends_on:
- mariadb_for_all
image: wordpress:latest
container_name: wordpress
volumes:
# 数据卷挂载路径设置,需要事先建立宿主机路径
- /root/docker/wordpress:/var/www/html/
# 修改PHP文件上传大小限制文件
- /root/docker/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
ports:
- "127.0.0.1:1080:80"
restart: always
environment:
WORDPRESS_DB_HOST: mariadb_for_all:3306
# 需要进入手动mariadb,创建下面的用户+数据库(也可以自动创建)
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_PASSWORD: 替换为你想使用的密码
#网盘 nextcloud https://hub.docker.com/_/nextcloud/
nextcloud:
depends_on:
- mariadb_for_all
image: nextcloud
container_name: nextcloud
volumes:
- nextcloud_data:/var/www/html
# 数据卷挂载路径设置,需要事先建立宿主机路径
- /root/docker/nextcloud/config:/var/www/html/config
- /root/docker/nextcloud/data:/var/www/html/data
ports:
- "127.0.0.1:2080:80"
restart: always
environment:
MYSQL_HOST: mariadb_for_all:3306
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: 替换为你想使用的密码
# 自动设定管理员账号密码
NEXTCLOUD_ADMIN_USER: bai
NEXTCLOUD_ADMIN_PASSWORD: 替换为你想使用的密码
# 私人git gogs https://hub.docker.com/r/gogs/gogs/
# 文档: https://gogs.io/docs/installation
gogs:
depends_on:
- mariadb_for_all
image: gogs/gogs
container_name: gogs
volumes:
# 数据卷挂载路径设置,需要事先建立宿主机路径
- /root/docker/gogs:/data
ports:
- "10022:22"
- "127.0.0.1:3000:3000"
restart: always
sudo nano /root/docker/uploads.ini
# 加入以下内容
file_uploads = On
memory_limit = 500M
upload_max_filesize = 30M
post_max_size = 30M
max_execution_time = 600
运行所有容器
cd /root/docker
sudo docker-compose up
# 后台启动并运行所有的容器
sudo docker-compose up -d
# 停止所有容器
sudo docker-compose down
# docker-compose更新镜像, 然后启动容器
sudo docker-compose up -d --build
手动设置数据库
Wordpress的数据库在docker-compose文件中,用定义environment的方式自动创建好了
剩下Nextcloud、Gogs需手动设置
# 进入miriadb容器
docker exec -it mariadb_for_all bash
# 进入mysql
mysql -uroot -p
# nextcloud
# 新建一个名为nextcloud的用户
CREATE USER 'nextcloud' IDENTIFIED BY '替换为你想使用的密码';
# 为nextcloud创建一个名为nextcloud_db数据库
CREATE DATABASE IF NOT EXISTS nextcloud_db;
# 给nextcloud用户权限
GRANT ALL PRIVILEGES ON nextcloud_db.* TO 'nextcloud' IDENTIFIED BY '替换为你想要的数据库密码';
# gogs
# 新建一个名为gogs的用户
CREATE USER 'gogs' IDENTIFIED BY '替换为你想使用的密码';
# 为gogs创建一个名为gogs_db数据库
CREATE DATABASE IF NOT EXISTS gogs_db;
# 给nextcloud用户权限
GRANT ALL PRIVILEGES ON gogs_db.* TO 'gogs' IDENTIFIED BY '替换为你想要的数据库密码';
#退出
quit
exit
Docker图形化管理
简单轻量的portainer
docker volume create portainer_data
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
数据库常用指令
#显示数据库
SHOW DATABASES;
# 使用某个数据库
USE nextcloud_db;
# 显示所有的表
SHOW TABLES;
#查看所有用户及权限
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
#删除某个数据库,当然有重要数据同时又没备份的话,最好不要这么做。
drop database nextcloud;
caddy安装与设置
简单的HTTP2服务器
# 安装caddy个人版与附加插件
curl https://getcaddy.com | bash -s personal http.filemanager,http.forwardproxy,http.geoip,http.git,http.webdav,tls.dns.cloudflare
# 第一次需手动确认
caddy --conf /root/CaddyFile.conf
# 后台运行
nohup caddy --conf /root/CaddyFile.conf
设置文件(CaddyFile.conf):
https://www.yumenaka.net, https://yumenaka.net {
gzip
tls [email protected]
# log日志输出路径
log http2-access.log
#转发wordpress到主域名
proxy / localhost:1080 {
header_upstream Host {host}
header_upstream X-Real-IP {remote}
header_upstream X-Forwarded-For {remote}
header_upstream X-Forwarded-Proto {scheme}
}
}
# 转发其他端口各种服务
# nextcloud
https://nextcloud.yumenaka.net {
gzip
tls [email protected]
proxy / localhost:2080 {
header_upstream Host {host}
header_upstream X-Real-IP {remote}
header_upstream X-Forwarded-For {remote}
header_upstream X-Forwarded-Proto {scheme}
}
}
#转发gogs私人git
https://git.yumenaka.net {
gzip
tls [email protected]
proxy / localhost:3000 {
header_upstream Host {host}
header_upstream X-Real-IP {remote}
header_upstream X-Forwarded-For {remote}
header_upstream X-Forwarded-Proto {scheme}
}
}
#转发portainer
https://portainer.yumenaka.net {
gzip
tls [email protected]
proxy / localhost:9000 {
header_upstream Host {host}
header_upstream X-Real-IP {remote}
header_upstream X-Forwarded-For {remote}
header_upstream X-Forwarded-Proto {scheme}
}
}
#caddy的插件网盘
https://file.yumenaka.net {
gzip
tls [email protected]
filemanager / {
show /root/caddy/file
database /root/caddy/filemanager.db
allow_new true
allow_edit true
allow_commands true
}
}
#HTTP链接,重定向到HTTPS
http://yumenaka.net {
timeouts none
redir https://yumenaka.net{url}
}
https://www.yumenaka.net {
timeouts none
redir https://www.yumenaka.net{url}
}
http://portainer.yumenaka.net {
timeouts none
redir https://portainer.yumenaka.net{url}
}
http://nextcloud.yumenaka.net {
timeouts none
redir https://nextcloud.yumenaka.net{url}
}
http://file.yumenaka.net {
timeouts none
redir https://file.yumenaka.net{url}
}
http://git.yumenaka.net {
timeouts none
redir https://git.yumenaka.net{url}
}
网页配置与初始化
密码与端口,参考“docker-compose.yml”
详细略过、反正不难,而且都是中文页面
代理相关
https://www.yumenaka.net/2018/12/22/linuxproxy/
文章评论