服务器迁移记录 Seafile 和 Gitea 迁移记录
原因
我长期以来一直使用 滴滴云 作为主力服务器使用,这台服务器是1 core 1 GB 的配置。带宽 10 M,按量计费。有两块 20g 硬盘构成。之所以选用滴滴云主要是价格非常便宜,这个配置只需要 22 块钱一个月,个人用户流量也用不了太多。非常便宜。
说起回归阿里云的原因,是由于一起事故引发的。前几日,我临时在滴滴云上部署了 iGEM 招新登记系统 系统。我参加了 2018 年的 iGEM 比赛。回国之后自然要招收新的同学,于是临时写了这样的一个网站。过了几天之后,突然在一天崩溃,文件系统损坏。现象是 ip ping 不通,ssh 登录不了,控制台显示机器失联。我从早上8点开始联系客服人员,直到下午三点左右才恢复工作。
此前,滴滴云也发生过一次乱扣费的现象。这些事情,让我认识到,滴滴云作为新的 IDC 厂家,技术上还是不稳固的。因此决定迁移回阿里云。
购买服务器
最终购买了一台 2C4GB 的服务器(钱包空了)。并准备开始把之前的服务迁移过来。之前的服务器上一共运行有四个服务,一个自建的博客系统,一个私有云,一个私有 git 库以及临时部署的招新系统。除了博客是 angular 静态页面,其他全部使用 docker 部署,因此迁移起来问题不大。
转移 Seafile
我使用了很久一段时间的 nextcloud
,可是一直觉得不能很好的真正利用上这个软件,于是决定该用 Seafile ,实测好用。Seafile 使用的官方 docker 镜像。转移主要有几个步骤。
第一是把镜像中 /shared
下的全部文件通过 scp 或者 rsyne 同步到新服务器对应位置。
修改 run.sh 把服务器运行起来。我一般习惯测试时使用 tmux 前台跑 docker 镜像。
docker run -it --name seafile\
--net mynet\
--ip 172.33.0.2\
--restart=always -e SEAFILE_SERVER_HOSTNAME=cloud.ertuil.top\
-e SEAFILE_ADMIN_EMAIL=<your email>\
-e SEAFILE_ADMIN_PASSWORD=<your password>\
-v /opt/seafile:/shared\
seafileltd/seafile:latest
mysqldump -uroot -p123 --opt ccnet_db > ccnet_db.sql
mysqldump -uroot -p123 --opt seafile_db > seafile_db.sql
mysqldump -uroot -p123 --opt seahub_db > seahub_db.sql
docker exec -it seafile bash
mysql -uroot ccnet_db < ccnet-db.sql
mysql -uroot seafile_db < seafile-db.sql
mysql -uroot seahub_db < seahub-db.sql
server {
listen 80;
server_name cloud1.ertuil.top cloud.ertuil.top;
client_max_body_size 4G;
location / {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://172.33.0.2;
}
}
server {
listen 443;
server_name cloud.ertuil.top cloud1.ertuil.top;
ssl on;
ssl_certificate /root/keys/cert.pem;
ssl_certificate_key /root/keys/privkey.pem;
client_max_body_size 4G;
location / {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://172.33.0.2;
}
}
docker run -d --name git\
--net mynet\
--ip 172.33.0.3\
-v /opt/gitea:/data\
-p 3000:3000\
-p 2222:22\
--restart=always\
gitea/gitea:latest
server {
listen 80;
server_name ertuil.top www.ertuil.top my.ertuil.top;
rewrite ^(.*)$ https://$host$1 permanent;
}
server {
listen 443;
server_name ertuil.top www.ertuil.top my.ertuil.top;
ssl on;
ssl_certificate /root/keys/cert.pem;
ssl_certificate_key /root/keys/privkey.pem;
location / {
root /opt/blog;
try_files $uri $uri/ /index.html @router;
}
location @router {
rewrite ^.*$ /index.html last;
}
}
本人保留对侵权者及其全家发动因果律武器的权利
版权提醒
如无特殊申明,本站所有文章均是本人原创。转载请务必附上原文链接:https://www.elliot98.top/post/tech/%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%81%E7%A7%BB%E8%AE%B0%E5%BD%95-seafile-%E5%92%8C-gitea-%E8%BF%81%E7%A7%BB%E8%AE%B0%E5%BD%95/。
如有其它需要,请邮件联系!版权所有,违者必究!