Yeqa uye kokucuketse lokuyinhloko

Kutingenisela nge-Docker

Gijimisa i-instance yakho yangasese ye-B1 Admin, i-B1 member portal, i-API, kanye ne-database ye-MySQL kunoma ngumuphi umshini une-Docker -- iseva yasekhaya, i-VPS ye-$5, kumbe ibhokisi le-on-prem. Umyalo munye we-docker compose up uyakha futsi ucalisa konkhe. Nangabe ungatsandzi kuphatsa iseva nakukanjani, bona Kutingenisela ku-Railway kutfola lokunye lokuphatfwako.

Kucala Ngekushesha

Loko Lokudzingeka

  • I-Docker Engine ine-Compose v2 (ihlanganisiwe ku-Docker Desktop)
  • Cishe u-4 GB we-RAM lokhona ngesikhatsi sekwakha kwekucala (tinhlelo te-web takhiwa kusuka ku-source)
  • I-Git, kumbe kumane ifayela le-docker-compose.yml lelicwebekile
git clone https://github.com/ChurchApps/B1Admin.git
cd B1Admin
docker compose up -d

Kugijima kwekucala kutsatsa emaminithi lasi-10-20: kwakha i-B1Admin kusuka ku-clone yakho futsi kwakha i-API ne-B1App ngco kusuka ku-repository tato te-GitHub. Kucala lokulandzelako kutsatsa imizuzwana.

Nakukhona tisita letine tonkhe sesikhona:

  1. Vula i-http://localhost:3101 (B1 Admin).
  2. Cindzetela Register bese wakha akhawunti yakho. I-akhawunti yekucala iba ngu-server admin ngco.
  3. Landzela imiyalo lengekhatsi kwelinhlelo kute wakhe libandla lakho lekucala.

Ema-schema e-database akhiwa ngco ngeluhambo lwe-startup migration ye-container ye-API -- akudzingi i-SQL nangesandla.

SisitaI-URL
B1Admin (baphatsi/basebenti)http://localhost:3101
B1App (member portal / sayithi)http://localhost:3000
APIhttp://localhost:8084
MySQLngekhatsi kuphela (mysql:3306 ku-network ye-compose)

Kuhlelwa

Konkhe kuhlelwa kuhlala ku-fayela le-.env eceleni kwe-docker-compose.yml. Livariyebuli ngalinye linekusebenta kwe-default ye-localhost, ngako ifayela akudzingeki kuze kutsi ulikhetsekise.

# .env — konkhe akudzingeki; kukhonjiswe nema-default
MYSQL_ROOT_PASSWORD=churchapps
JWT_SECRET=please-change-this-jwt-secret
ENCRYPTION_KEY=PleaseChangeThisDockerDefaultKey # tinhlamvu letili-32 ngco

# Ema-URL Lomphakatsi (shintja loku nawukhipha ngale kwelocalhost)
API_URL=http://localhost:8084
B1ADMIN_URL=http://localhost:3101
B1APP_URL=http://localhost:3000
SOCKET_URL=ws://localhost:8084

# I-Email — bona sigaba se-Email semhlahlandlela we-Railway kutfola imihambo yebaniki
MAIL_SYSTEM=
SMTP_HOST=
SMTP_USER=
SMTP_PASS=
SMTP_SECURE=false
SUPPORT_EMAIL=noreply@yourchurch.org

Ngaphambi kwekusetjentiswa lokungempela, shintja i-MYSQL_ROOT_PASSWORD, i-JWT_SECRET, kanye ne-ENCRYPTION_KEY (noma yimuphi umugca wetinhlamvu letili-32).

sicwayiso

Emanani la-*_URL agcotjwe etinhlelweni te-web ngesikhatsi sekwakha (kutiphatsa lokujwayelekile kwe-Vite/Next.js). Kushintja loku ku-.env kudzinga kwakha kabusha, hhayi kucala kabusha kuphela:

docker compose up -d --build

Kushintja liphasiwedi le-MySQL ngemuva kwekucala kokugijimiswa kudzinga kubuyeketa liphasiwedi ngekhatsi kwe-MySQL nako -- i-volume igcina ema-credential lamadzala.

Kuyikhipha Ku-Inthanethi

Beka noma ngumuphi i-reverse proxy ngembili bese unika sisita ngasinye ligama le-host. Nge-Caddy kunje:

admin.yourchurch.org { reverse_proxy localhost:3101 }
app.yourchurch.org { reverse_proxy localhost:3000 }
api.yourchurch.org { reverse_proxy localhost:8084 }

Bese uhlela ema-URL ku-.env bese wakha kabusha:

API_URL=https://api.yourchurch.org
B1ADMIN_URL=https://admin.yourchurch.org
B1APP_URL=https://app.yourchurch.org
SOCKET_URL=wss://api.yourchurch.org
docker compose up -d --build

I-WebSocket lesetjentiswa yekukhulumisana kanye netatiso letiphilako yabelana ne-port ye-API, ngako i-SOCKET_URL yimane iyi-URL ye-API nge-wss://.

I-Email, Kunikela, Emasayithi Lamanyenti, Kanye Nekuhlanganiswa

Loku kusebenta ngendlela lefanako nekufakwa kwe-Railway -- emavariyebuli endzawo lafanako, ahlelwa ku-fayela lakho le-.env esikhundleni se-dashboard ye-Railway (i-compose file iwadlulisela ku-API):

  • I-Email / SMTP -- kuncocedwa kakhulu; ngaphandle kwako emalungu akakwati kubuyisela emaphasiwedi
  • Emasayithi Lamanyenti -- emabandla langenamkhawulo ku-instance yinye, aphatfwa ku-admin UI
  • Kunikela ngco -- kuhlelwa ngalinye libandla ku-admin UI, hhayi ngemavariyebuli endzawo
  • Kuhlanganiswa lokungakhetsakala -- OPENAI_API_KEY, YOUTUBE_API_KEY, PEXELS_KEY, VIMEO_TOKEN, API_BIBLE_KEY, WEB_PUSH_PUBLIC_KEY/WEB_PUSH_PRIVATE_KEY, GOOGLE_RECAPTCHA_SECRET_KEY

Imininingwane, Kugcinwa Kwesipeya (Backups), Kanye Nekugcinwa Kwemafayela

Ema-volume lamabili la-Docker lanemagama agcina sonkhe simo:

IvolumeKucuketfwe
mysql-dataOnkhe ema-schema e-database
api-contentEmafayela lalayishiwe -- imidvwebo, imibhalo, imidvwebo yesayithi (igcotjwe ku-/app/content)

Gcina sipeya se-database nge-command yinye (uyihlele nge-cron):

docker compose exec mysql mysqldump -uroot -p"$MYSQL_ROOT_PASSWORD" --all-databases > backup-$(date +%F).sql

Gcina sipeya semafayela lalayishiwe ngekukopisha i-volume:

docker run --rm -v b1admin_api-content:/data -v "$PWD":/backup alpine tar czf /backup/content-$(date +%F).tgz -C /data .

Emalybhulari lamakhulu emidvwebo, ungashintjela kugcinwa kwemafayela ku-S3 esikhundleni se-volume yasekhaya -- hlela i-FILE_STORE=S3 kanye nemavariyebuli la-AWS_* lachaziwe sigabeni sekugcinwa kwemafayela semhlahlandlela we-Railway.

Kubuyeketa

I-API ne-B1App takhiwa kusuka ku-main branch ye-repository tato te-GitHub; i-B1Admin yakhiwa kusuka ku-clone yakho yasekhaya.

git pull                              # buyeketa i-B1Admin
docker compose build --pull # yakha kabusha onkhe emidvwebo ngeku-latest main
docker compose up -d

Ema-migration e-database agijima ngco nakucala i-container ye-API.

Kubopha tivasyini esikhundleni sekulandzela i-main, khomba ema-build context kuliphawu (tag) ku-.env:

API_CONTEXT=https://github.com/ChurchApps/Api.git#v1.2.3
B1APP_CONTEXT=https://github.com/ChurchApps/B1App.git#v1.2.3

Batfutfukisi bangakhomba emavariyebuli lafanako ku-ema-checkout asekhaya (sibonelo, API_CONTEXT=../Api).

Kulungisa Tinkinga

LuphawuImbangela levamileSicondziso
I-container ye-api icala kabusha njalonjaloI-MySQL ayikalungi kumbe migration iyehlulekadocker compose logs api -- i-migration ikhipha kutsi ngumuphi umodyuli lowehlulekile
Kungena kubuyisela ku-api.churchapps.orgUhlelo lwe-web lwakhiwe ngaphandle kwema-custom stage argsYakha kabusha: docker compose build --no-cache b1admin b1app
Ushintje i-URL ku-.env kodvwa akwenteki lutfoEma-URL agcotjwa ngesikhatsi sekwakhadocker compose up -d --build
"Check your email" kodvwa akukho imeyili lefikakoMAIL_SYSTEM=SMTP ine-credential lembiLungisa ema-credential, kumbe susa i-MAIL_SYSTEM kute uvimbe imeyili
Tici tekukhulumisana/kuphila tithule dvuI-SOCKET_URL ayifinyeleleki kusuka ku-browserKufanele ibe wss:// ngemuva kwe-HTTPS futsi iproxishwe ku-port 8084
Kwakha kuyafa ku-VPS lencaneKute i-memory ngesikhatsi se-next buildEngeta i-swap, kumbe wakhe kulomunye umshini bese docker save/load

Usasibambekile? Vula i-issue ku-github.com/ChurchApps/ChurchAppsSupport/issues unamatsele lokukhishwe yi-docker compose logs.

Emahloko Lahlobene