Migrant ot Akkoma
准备
🌟备份
➡️账号: Settings – Data import/export,全部导出
以下文件夹用 FTP 客户端(FileZilla)备份到电脑
➡️数据库:
mkdir -p /pleromabackup
chmod 777 /pleromabackup
登入数据库
su - postgres
psql -U postgres
postgres=# \! pg_dump pleroma -f /pleromabackup/pleroma.pgdump
➡️Pleroma 配置:/etc/pleroma/
➡️Pleroma 静态文件:/var/lib/pleroma
🌟把域名的IP指向新服务器
搭建过程
安装依赖
apt update
apt upgrade
apt install curl unzip libncurses5 postgresql postgresql-contrib nginx libmagic-dev
apt install imagemagick ffmpeg libimage-exiftool-perl
安装本体:注意 Ubuntu22 的FLAVOUR变量是amd64-ubuntu-jammy
adduser --system --shell /bin/false --home /opt/akkoma akkoma
export FLAVOUR="amd64-ubuntu-jammy"
su akkoma -s $SHELL -lc "
curl 'https://akkoma-updates.s3-website.fr-par.scw.cloud/stable/akkoma-$FLAVOUR.zip' -o /tmp/akkoma.zip
unzip /tmp/akkoma.zip -d /tmp/
"
su akkoma -s $SHELL -lc "
mv /tmp/release/* /opt/akkoma
rmdir /tmp/release
rm /tmp/akkoma.zip
"
mkdir -p /var/lib/akkoma/uploads
chown -R akkoma /var/lib/akkoma
mkdir -p /var/lib/akkoma/static
chown -R akkoma /var/lib/akkoma
mkdir -p /etc/akkoma
chown -R akkoma /etc/akkoma
su akkoma -s $SHELL -lc "./bin/pleroma_ctl instance gen --output /etc/akkoma/config.exs --output-psql /tmp/setup_db.psql"
su postgres -s $SHELL -lc "psql -f /tmp/setup_db.psql"
su akkoma -s $SHELL -lc "./bin/pleroma_ctl migrate"
su akkoma -s $SHELL -lc "./bin/pleroma daemon"
sleep 20 && curl http://localhost:4000/api/v1/instance
su akkoma -s $SHELL -lc "./bin/pleroma stop"
申请SSL证书:参考通配符 SSL 证书自动续期
Nginx:
cp /opt/akkoma/installation/akkoma.nginx /etc/nginx/sites-available/akkoma.conf
修改所有 example.tld 为准备好的域名
vim /etc/nginx/sites-available/akkoma.conf
nginx -t
systemctl restart nginx
cp /opt/akkoma/installation/akkoma.service /etc/systemd/system/akkoma.service
systemctl start akkoma
systemctl enable akkoma
创建管理员账户、安装前端
cd /opt/akkoma
su akkoma -s $SHELL -lc "./bin/pleroma_ctl user new admin cyouike@duck.com --admin"
./bin/pleroma_ctl frontend install pleroma-fe --ref stable
./bin/pleroma_ctl frontend install admin-fe --ref stable
本地定时备份
mkdir /opt/local_backup
cd /opt/local_backup
vim backup.sh
脚本内容:
#!/bin/sh
source /etc/profile
echo "————————————backup to local directory——————————" | tee -a /opt/local_backup/backuplog.txt
echo `date +"%Y-%m-%d %H:%M:%S"` "now starting backup" | tee -a /opt/local_backup/backuplog.txt
echo 'stop akkoma' | tee -a /opt/local_backup/backuplog.txt
sudo systemctl stop akkoma
echo "0.create a backup day directory" | tee -a /opt/local_backup/backuplog.txt
if [ -d /opt/local_backup/`date +%Y%m%d``date +%Y%m%d` ];then
echo "Floder" `date +%Y%m%d` "already exists."
else
mkdir /opt/local_backup/`date +%Y%m%d`
echo "New floder" `date +%Y%m%d` | tee -a /opt/local_backup/backuplog.txt
fi
chmod +777 /opt/local_backup/`date +%Y%m%d`
cd /opt/local_backup/`date +%Y%m%d`
echo "1.dump database" | tee -a /opt/local_backup/backuplog.txt
sudo -Hu postgres pg_dump -d akkoma --format=custom -f /opt/local_backup/`date +%Y%m%d`/akkoma.pgdump
echo "2. copy upload & static folder" | tee -a /opt/local_backup/backuplog.txt
cp -r /var/lib/akkoma/static /opt/local_backup/`date +%Y%m%d`
cp -r /var/lib/akkoma/uploads /opt/local_backup/`date +%Y%m%d`
echo "3. copy config file" | tee -a /opt/local_backup/backuplog.txt
cp /etc/akkoma/config.exs /opt/local_backup/`date +%Y%m%d`
echo "restart akkoma" | tee -a /opt/local_backup/backuplog.txt
sudo systemctl start akkoma
echo `date +"%Y-%m-%d %H:%M:%S"` "finished" | tee -a /opt/local_backup/backuplog.txt
echo "Backup for" `date +%Y%m%d` "done!" | tee -a /opt/local_backup/backuplog.txt
删除超过15天的备份
vim clear.sh
find /opt/local_backup/ -type d -mtime +15 -exec rm -rf {} \;
设置定时任务
crontab -e
00 04 * * 6 root /bin/bash /opt/local_backup/backup.sh
00 23 1 * * root /bin/bash /opt/local_backup/clear.sh