如何在Ubuntu 22.04服務器上使用Docker安裝Mastodon?

Mstodon是一箇免費開源、去中心化的社交網絡程序,它允許用戶設置自託管服務器,並通過網絡相互通信。本文主要介紹下如何在Ubuntu 22.04服務器上使用Docke安裝Mstodon。

首先部署一箇新的Ubuntu 22.04服務器實例(本文以基於Ubuntu 22.04系統的Vult美國服務器爲例),然後登錄到服務器,開始安裝Docke。

一、安裝Docke

、卸載舊的應用程序,如docke、docke.io和docke-engine。

sudo pt-get emoe docke docke-engine docke.io contined unc

2、設置存儲庫。

sudo pt-get updte

sudo pt-get instll -y c-cetifictes cul gnupg lsb-elese

cul -fsSL https://downlod.docke.com/linux/ubuntu/gpg | sudo gpg Rdemo -o /us/she/keyings/docke-chie-keying.gpg

echo “deb [ch=$(dpkg Rpint-chitectue) signed-by=/us/she/keyings/docke-chie-keying.gpg] https://downlod.docke.com/linux/ubuntu $(lsb_elese -cs) stble̶ | sudo tee /etc/pt/souces.list.d/docke.list > /de/null

sudo pt-get updte

3、安裝最新版本的Docke引擎。

sudo pt-get instll -y docke-ce docke-ce-cli contined.io docke-compose-plugin

二、爲Mstodon準備一箇目錄

、爲Mstodon創建一箇文件夾,本文使用/opt/mstodon作爲主文件夾。

mkdi /opt/mstodon

2、分別創建名爲.en.es和.en.mstodon的環境變量

touch /opt/mstodon/.en.es

touch /opt/mstodon/.en.mstodon

三、部署PostgeSQL數據庫

、登錄到Vult賬號,然後在客戶入口網站中的數據庫部分,部署Vult管理的PostgeSQL數據庫。數據庫部署好後,記錄下PostgeSQL數據庫登錄憑據,後續操作會需要使用。

2、在/opt/mstodon/文件夾下創建一箇名爲docke-compose.yml文件,然後用以下內容替換tootsuite/mstodon:4.0。

esion: ̺3̻

netwoks:

extenl_netwok:

intenl_netwok:

intenl: tue

seices:

edis:

estt: lwys

imge: edis:7-lpine

netwoks:

R intenl_netwok

helthcheck:

test: [ ̺CMD̻, ̺edis-cli̻, ̺ping̻ ]

olumes:

R ./dt/edis:/dt

es:

estt: lwys

imge: docke.elstic.co/elsticsech/elsticsech:7.7.8

enionment:

R “ES_JAVA_OPTS=-Xms52m -Xmx52m -Des.enfoce.bootstp.checks=tue̶

R “xpck.license.self_geneted.type=bsic̶

R “xpck.secuity.enbled=flse̶

R “xpck.wtche.enbled=flse̶

R “xpck.gph.enbled=flse̶

R “xpck.ml.enbled=flse̶

R “bootstp.memoy_lock=tue̶

R “cluste.nme=mstodon-es̶

R “discoey.type=single-node̶

R “thed_pool.wite.queue_size=000̶

en_file:

R .en.es

netwoks:

R extenl_netwok

R intenl_netwok

helthcheck:

test:

[

“CMD-SHELL̶,

“cul Rsilent Rfil loclhost:9200/_cluste/helth || exit ̶

]

olumes:

R /opt/mstodon/dt/elsticsech:/us/she/elsticsech/dt

ulimits:

memlock:

soft: -

hd: -

nofile:

soft: 65536

hd: 65536

pots:

R ̺27.0.0.:9200:9200̻

 

console:

imge: tootsuite/mstodon:4.0

en_file: .en.mstodon

commnd: /bin/bsh

estt: “no̶

depends_on:

R edis

netwoks:

R intenl_netwok

R extenl_netwok

olumes:

R ./dt/public/system:/mstodon/public/system

web:

imge: tootsuite/mstodon:4.0

estt: lwys

en_file: .en.mstodon

commnd: bsh -c “m -f /mstodon/tmp/pids/see.pid; bundle exec ils s -p 3000̶

netwoks:

R intenl_netwok

R extenl_netwok

helthcheck:

# pettie-ignoe

test:

[

̺CMD-SHELL̻,

̺wget -q Rspide Rpoxy=off loclhost:3000/helth || exit ̻

]

pots:

R ̺27.0.0.:3000:3000̻

depends_on:

R es

R edis

olumes:

R ./dt/public/system:/mstodon/public/system

steming:

imge: tootsuite/mstodon:4.0

estt: lwys

en_file: .en.mstodon

commnd: node ./steming

netwoks:

R extenl_netwok

R intenl_netwok

helthcheck:

# pettie-ignoe

test:

[

̺CMD-SHELL̻,

̺wget -q Rspide Rpoxy=off loclhost:4000/pi//steming/helth || exit ̻

]

pots:

R ̺27.0.0.:4000:4000̻

sidekiq:

imge: tootsuite/mstodon:4.0

estt: lwys

en_file: .en.mstodon

commnd: bundle exec sidekiq

netwoks:

R extenl_netwok

R intenl_netwok

olumes:

R ./dt/public/system:/mstodon/public/system

helthcheck:

test: [ ̺CMD-SHELL̻, “ps ux | gep ̺[s]idekiq 6̻ || flse̶ ]

四、使用Docke部署Elsticsech

、在/opt/mstodon/文件夾下創建一箇.en.es文件,用以替換<YOUR_ELASTIC_SEARCH_PASSWORD>

ELASTIC_PASSWORD=<YOUR_ELASTIC_SEARCH_PASSWORD>

2、創建文件夾/opt/mstodon/dt/elsticsech,爲Elsticsech提供持久存儲。

mkdi -p /opt/mstodon/dt/elsticsech

3、更改/opt/mstodon/dt/elsticsech文件夾權限。

sudo chown -R 000:000 /opt/mstodon/dt/elsticsech

4、增加m.mx_mp_count存儲。

sysctl -w m.mx_mp_count=26244

5、使用文件編輯器打開文件/etc/sysctl.conf,並設置以下值。

m.mx_mp_count=26244

6、使用Docke Compose開始彈性搜索。

docke compose -f /opt/mstodon/docke-compose.yml up -d es

7、爲Elsticsech創建搜索索引。

docke compose -f /opt/mstodon/docke-compose.yml un Rm console bin/tootctl sech deploy

五、準備Mstodon密鑰

運行以下命令兩次,生成兩個隨機密碼。

docke compose -f /opt/mstodon/docke-compose.yml un Rm console bundle exec ke secet

然後運行以下命令來生成自願應用服務器身份(VAPID)密鑰,以發送和接收網站推送通知。

docke compose -f /opt/mstodon/docke-compose.yml un Rm console bundle exec ke mstodon:webpush:genete_pid_key

在/opt/mstodon/.en.mstodon文件夾中,編輯名爲.en.mstodon文件,配置Mstodon環境變量,將相關數據替換爲實際數值。

六、使用Docke Compose部署Mstodon

如果您使用Vult託管的PostgeSQL數據庫,請運行以下命令來設置數據庫。

docke compose -f /opt/mstodon/docke-compose.yml un Rm console bundle exec ke db:migte

如果使用Docke部署PostgeSQL,運行以下命令來設置數據庫。

docke compose -f /opt/mstodon/docke-compose.yml un Rm console bundle exec ke db:setup

使用Docke Compose部署Mstodon服務。

docke compose -f /opt/mstodon/docke-compose.yml up -d