# OmniRoute Fly.io Deployment Guide (Igbo) 🌐 **Languages:** 🇺🇸 [English](../../../../ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇪🇹 [am](../../../am/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇸🇦 [ar](../../../ar/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇦🇿 [az](../../../az/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇧🇬 [bg](../../../bg/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇧🇩 [bn](../../../bn/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇧🇦 [bs](../../../bs/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇨🇿 [cs](../../../cs/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇩🇰 [da](../../../da/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇩🇪 [de](../../../de/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇬🇷 [el](../../../el/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇪🇸 [es](../../../es/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇪🇪 [et](../../../et/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇮🇷 [fa](../../../fa/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇫🇮 [fi](../../../fi/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇫🇷 [fr](../../../fr/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇮🇪 [ga](../../../ga/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇮🇳 [gu](../../../gu/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇳🇬 [ha](../../../ha/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇮🇱 [he](../../../he/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇮🇳 [hi](../../../hi/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇭🇷 [hr](../../../hr/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇭🇺 [hu](../../../hu/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇦🇲 [hy](../../../hy/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇮🇩 [id](../../../id/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇮🇹 [it](../../../it/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇯🇵 [ja](../../../ja/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇬🇪 [ka](../../../ka/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇰🇭 [km](../../../km/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇮🇳 [kn](../../../kn/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇰🇷 [ko](../../../ko/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇱🇹 [lt](../../../lt/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇱🇻 [lv](../../../lv/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇮🇳 [ml](../../../ml/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇮🇳 [mr](../../../mr/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇲🇾 [ms](../../../ms/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇲🇹 [mt](../../../mt/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇲🇲 [my](../../../my/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇳🇵 [ne](../../../ne/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇳🇱 [nl](../../../nl/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇳🇴 [no](../../../no/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇮🇳 [or](../../../or/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇮🇳 [pa](../../../pa/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇵🇭 [phi](../../../phi/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇵🇱 [pl](../../../pl/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇵🇹 [pt](../../../pt/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇷🇴 [ro](../../../ro/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇷🇺 [ru](../../../ru/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇱🇰 [si](../../../si/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇸🇰 [sk](../../../sk/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇸🇮 [sl](../../../sl/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇷🇸 [sr](../../../sr/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇸🇪 [sv](../../../sv/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇰🇪 [sw](../../../sw/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇮🇳 [ta](../../../ta/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇮🇳 [te](../../../te/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇹🇭 [th](../../../th/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇹🇷 [tr](../../../tr/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇵🇰 [ur](../../../ur/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇺🇿 [uz](../../../uz/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇻🇳 [vi](../../../vi/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇳🇬 [yo](../../../yo/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) --- Akwụkwọ a na-akọwa usoro mbugharị OmniRoute n'ezie na Fly.io, ma na-ekpuchi ọnọdụ ndị a: - Ibugharị ọrụ dị ugbu a na Fly.io na nke mbụ - Ibipụta mmelite koodu ndị na-esote - Ọrụ ọhụrụ ndị na-agbaso otu usoro mbugharị ahụ Ntuziaka a dabere na nhazi a nwalere ma chọpụta na ọ na-arụ ọrụ maka ọrụ dị ugbu a. Aha ngwa ahụ bụ `omniroute`. --- ## 1. Ebumnuche Mbugote - Ikpo okwu: Fly.io - Usoro mbugote: Mbipụta ozugbo site na `flyctl` mpaghara - Ebe ọrụ: Iji `Dockerfile` na `fly.toml` ndị dị ugbu a n'ebe nchekwa koodu - Nchekwa data na-adịgide adịgide: Fly Volume etinyere na `/data` - URL nnweta: `https://omniroute.fly.dev/` --- ## 2. Nhazi Ndị Dị Mkpa nke Ọrụ Dị Ugbu A Ekwenyela na `fly.toml` dị n'ebe nchekwa koodu ugbu a nwere ihe ndị a dị mkpa: ```toml app = 'omniroute' primary_region = 'sin' [[mounts]] source = 'data' destination = '/data' [processes] app = 'node run-standalone.mjs' [http_service] internal_port = 20128 [env] TZ = "Asia/Shanghai" HOST = "0.0.0.0" HOSTNAME = "0.0.0.0" BIND = "0.0.0.0" ``` Nkọwa: - `app = 'omniroute'` na-ekpebi ngwa Fly mbugote ahụ ga-aga na ya - `destination = '/data'` na-ekpebi ndekọ ebe a ga-etinye volume na-adịgide adịgide - Ọrụ a ga-edoberịrị `DATA_DIR=/data`, ma ọ bụghị ya, a ga-ede nchekwa data na igodo n'ime ndekọ nwa oge nke container ahụ --- ## 3. Ihe Ndị A Chọrọ Tupu Amalite ### 3.1 Ịwụnye Fly CLI Windows PowerShell: ```powershell pwsh -Command "iwr https://fly.io/install.ps1 -useb | iex" ``` Ọ bụrụ na skript nrụnye ahụ ada na gburugburu gị, ị nwekwara ike iji aka budata binary `flyctl` ma tinye ya na `PATH` gị. ### 3.2 Ịbanye na Akaụntụ Fly Gị ```powershell flyctl auth login ``` ### 3.3 Ịkwado Ọnọdụ Nbanye ```powershell flyctl auth whoami flyctl version ``` --- ## 4. Ibugote Ọrụ Dị Ugbu A na Nke Mbụ ### 4.1 Detuo Koodu ahụ ma Banye na Ndekọ ahụ ```powershell git clone https://github.com/diegosouzapw/OmniRoute.git cd OmniRoute ``` ### 4.2 Kwadoo Aha Ngwa ahụ Mepee `fly.toml` ma nyochaa ahịrị na-esonụ: ```toml app = 'omniroute' ``` Ọ bụrụ na ị na-ebuga ya na ngwa ọhụrụ nke gị, ị nwere ike ịgbanwe ya gaa n'aha pụrụ iche n'ụwa niile, dịka ọmụmaatụ: ```toml app = 'omniroute-yourname' ``` Rịba ama: - Gbaa mbọ hụ na ngwa ị na-ahụ na console dabara na uru `app` dị na `fly.toml` - Ọ bụrụ na i jiri aha ọzọ na mbụ, dịka `oroute`, agwakọtala ya na `omniroute` ### 4.3 Mepụta Ngwa ahụ Ọ bụrụ na ngwa ahụ adịghị ugbu a: ```powershell flyctl apps create omniroute ``` Ọ bụrụ na ị gbanwere aha ngwa ahụ, jiri aha ị họọrọ dochie `omniroute`. ### 4.4 Mbugote Mbụ ```powershell flyctl deploy ``` --- ## 5. Paramita Ndị A Chọrọ Ọrụ a na-atụ aro ka ị hazie ma ọ dịkarịa ala paramita ndị na-esonụ na Fly.io. ### 5.1 Paramita Ndị E Kwadoburu E jirila paramita ndị a mee mbugote n'ezie na ngwa `omniroute` dị ugbu a: - `API_KEY_SECRET` - `DATA_DIR` - `JWT_SECRET` - `MACHINE_ID_SALT` - `NEXT_PUBLIC_BASE_URL` - `OMNIROUTE_WS_BRIDGE_SECRET` (a chọrọ ya na production — a na-eji ya maka nkwenye njirimara WebSocket bridge) - `STORAGE_ENCRYPTION_KEY` ### 5.2 Banyere `INITIAL_PASSWORD` Ọrụ dị ugbu a anaghị edobe `INITIAL_PASSWORD` n'ihi na mbugote a achọghị ya. Ọ bụrụ na edoghị ya: - Startup log ga-egosi na okwuntughe ndabara bụ `CHANGEME` - Ị kwesịrị ịgbanwe okwuntughe nbanye na ntọala sistemụ ozugbo enwere ike mgbe mbugote gasịrị Ọ bụrụ na ịchọrọ ịmalite okwuntughe backend n'enweghị enyemaka mmadụ, ị nwere ike ịgbakwunye ya ma emechaa: - `INITIAL_PASSWORD` --- ## 6. Paramita Ndị A Tụrụ Aro ### 6.1 Nhazi Nzuzo A na-atụ aro mgbanwe ndị a maka Fly Secrets: | Mgbanwe | Ntụnye Aro | Nkọwa | | ---------------------------- | ------------------------- | --------------------------------------------------- | | `API_KEY_SECRET` | Achọrọ | A na-eji ya emepụta ma nyochaa API Key | | `JWT_SECRET` | Achọrọ | A na-eji ya maka nnọkọ nbanye na ịbịanye aka na JWT | | `OMNIROUTE_WS_BRIDGE_SECRET` | Achọrọ na mmepụta | Nzuzo nkwenye njirimara maka njikọ WebSocket | | `STORAGE_ENCRYPTION_KEY` | A na-atụ aro ya nke ukwuu | Na-ezochi ozi njikọ dị mkpa mgbe echekwara ya | | `MACHINE_ID_SALT` | A tụrụ aro | Na-emepụta njirimara igwe na-adịgide adịgide | | `INITIAL_PASSWORD` | Nhọrọ | Na-edobe okwuntughe mbụ nke backend na mbunye mbụ | | Nzere nzuzo OAuth/API | Dị ka mkpa si dị | Nhazi nkwenye njirimara maka ikpo okwu mpụga | ### 6.2 Uru Ndị A Tụrụ Aro Maka Ihe Ndị A Na-arụ Ugbu A | Mgbanwe | Uru A Tụrụ Aro | | ---------------------- | --------------------------- | | `DATA_DIR` | `/data` | | `NEXT_PUBLIC_BASE_URL` | `https://omniroute.fly.dev` | Ihe ndetu: - `DATA_DIR=/data` dị oke mkpa ma ga-adabarịrị ebe e jikọtara Fly Volume - Onye nhazi oge, callback nke frontend, na ọnọdụ ndị yiri ya na-eji `NEXT_PUBLIC_BASE_URL` ### 6.3 Nhazi URL Callback OAuth Ọ bụrụ na ịchọrọ ime ka ndị na-enye ọrụ dabere na OAuth (dịka Antigravity, Gemini, Cursor) rụọ ọrụ na mbunye Fly.io, gbaa mbọ hụ isi ihe abụọ ndị a: 1. **Debe `NEXT_PUBLIC_BASE_URL` ka ọ bụrụ ngalaba HTTPS ọha gị** ```powershell flyctl secrets set NEXT_PUBLIC_BASE_URL=https://omniroute.fly.dev -a omniroute ``` Ọ bụrụ na ị na-eji ngalaba ahaziri iche, jiri ngalaba kwekọrọ dochie ya (dịka `https://omniroute.yourdomain.com`). 2. **Hazie URL callback na console nke onye na-enye ọrụ** Ndị niile na-enye OAuth na-eji otu ụzọ callback `/callback` — ENWEGHỊ ụzọ callback dị iche maka onye na-enye ọrụ ọ bụla: ```text /callback ``` Dịka ọmụmaatụ, ma ọ bụ Gemini, Antigravity, Cursor, ma ọ bụ GitLab Duo: - `https://omniroute.fly.dev/callback` Ọ bụrụ na `NEXT_PUBLIC_BASE_URL` adabaghị na URL callback e debanyere aha n'aka onye na-enye ọrụ, usoro OAuth ga-ada na nzọụkwụ ntụgharị ihe nchọgharị. --- ## 7. Iji Otu Iwu Hazie Nzuzo Iwu ndị a na-emepụta uru enweghị usoro e chekwara nke ọma ma dee paramita niile achọrọ maka ihe ndị a na-arụ ugbu a na Fly Secrets n'otu nzọụkwụ. Ihe ndetu: - Ọ naghị agụnye `INITIAL_PASSWORD` - Ezubere ya maka ihe ndị a na-arụ ugbu a `omniroute` ```powershell $apiKeySecret = [Convert]::ToHexString((1..32 | ForEach-Object { Get-Random -Minimum 0 -Maximum 256 })).ToLower() $jwtSecret = [Convert]::ToHexString((1..64 | ForEach-Object { Get-Random -Minimum 0 -Maximum 256 })).ToLower() $machineIdSalt = [Convert]::ToHexString((1..32 | ForEach-Object { Get-Random -Minimum 0 -Maximum 256 })).ToLower() $storageKey = [Convert]::ToHexString((1..32 | ForEach-Object { Get-Random -Minimum 0 -Maximum 256 })).ToLower() $wsBridgeSecret = [Convert]::ToHexString((1..32 | ForEach-Object { Get-Random -Minimum 0 -Maximum 256 })).ToLower() flyctl secrets set ` API_KEY_SECRET=$apiKeySecret ` JWT_SECRET=$jwtSecret ` MACHINE_ID_SALT=$machineIdSalt ` STORAGE_ENCRYPTION_KEY=$storageKey ` OMNIROUTE_WS_BRIDGE_SECRET=$wsBridgeSecret ` DATA_DIR=/data ` NEXT_PUBLIC_BASE_URL=https://omniroute.fly.dev ` -a omniroute ``` Na Linux / macOS, ị nwekwara ike iji `openssl rand -hex 32`: ```bash flyctl secrets set OMNIROUTE_WS_BRIDGE_SECRET=$(openssl rand -hex 32) -a omniroute ``` Ihe ndetu: - A chọrọ `OMNIROUTE_WS_BRIDGE_SECRET` na mmepụta; ọ bụrụ na ọ dịghị, nkwanye aka nke njikọ WebSocket ga-emebi Ọ bụrụ na ịchọrọ ịtọkwa okwuntughe mbụ: ```powershell flyctl secrets set INITIAL_PASSWORD=your-strong-password -a omniroute ``` --- ## 8. Ịlele Paramita Ndị Dị Ugbu A ```powershell flyctl secrets list -a omniroute ``` Ọ bụrụ na ibe `Secrets` dị na console egosịghị mgbanwe ndị a tụrụ anya ha, lelee: - Na ị na-ele ngwa `omniroute` - Na uru `app` dị na `fly.toml` dabara na ngwa dị na console --- ## 9. Mmelite na Mwepụta Ndị Na-esote Mgbe emelitechara koodu, usoro mwepụta ahụ dị mfe: ```powershell git pull flyctl deploy ``` Ọ bụrụ naanị na ịchọrọ imelite paramita n’agbanweghị koodu: ```powershell flyctl secrets set KEY=value -a omniroute ``` Fly ga-eme mmelite igwe n’usoro na-akpaghị aka. ### 9.1 Ịso Mmelite Ebe Nchekwa Upstream Ka Ị Na-echekwa `fly.toml` nke Fork Gị Ọ bụrụ na ebe nchekwa dị ugbu a bụ fork ma ịchọrọ imekọrịta mmelite sitere na upstream `https://github.com/diegosouzapw/OmniRoute`, soro usoro ọrụ dị n'okpuru. Nke mbụ, nyochaa remotes gị: ```powershell git remote -v ``` Ị kwesịrị ịhụ ma ọ dịkarịa ala: - `origin` na-atụ aka na fork nke gị - `upstream` na-atụ aka na ebe nchekwa mbụ Ọ bụrụ na ahazibeghị `upstream`, tinye ya: ```powershell git remote add upstream https://github.com/diegosouzapw/OmniRoute.git ``` Tupu imekọrịta na upstream, weta commits na tags kachasị ọhụrụ: ```powershell git fetch upstream --tags ``` Lelee ụdị dị ugbu a na tags nke upstream: ```powershell git describe --tags --always git show --no-patch --oneline v3.4.7 ``` > Rịba ama: Ụdị ọrụ a dị ugbu a bụ `v3.8.0`. E debere ntụaka `v3.4.7` ndị dị n'okpuru naanị dịka ihe atụ akụkọ ihe mere eme. Maka mwepụta ndị a na-eji eme ihe n'ezie, jiri `:latest` ma ọ bụ tag nke ụdị dị ugbu a (dịka `:v3.8.0`). Ọ bụrụ na ịchọrọ ijikọta `main` kachasị ọhụrụ nke upstream ma jigidesie `fly.toml` nke fork gị ike, soro usoro ọrụ a: ```powershell git merge upstream/main git checkout HEAD~1 -- fly.toml git add -- fly.toml git commit -m "chore(deploy): keep fork fly.toml" git push origin main ``` Ihe ndị ị ga-eburu n'uche: - `git merge upstream/main` na-emekọrịta koodu kachasị ọhụrụ sitere na ebe nchekwa mbụ - `git checkout HEAD~1 -- fly.toml` na-eweghachi `fly.toml` nke fork gị dịka ọ dị tupu njikọta ahụ - Ọ bụrụ na upstream agbanwebeghị `fly.toml`, nzọụkwụ a agaghị eweta ọdịiche ọ bụla - Ọ bụrụ na upstream gbanwere `fly.toml`, nzọụkwụ a na-ahụ na edegharịghị aha ngwa Fly gị, njikọta volume, region, na nhazi mbugharị ndị ọzọ pụrụ iche nye fork gị Ọ bụrụ na ịchọrọ ịhazi ya ka ọ daba na otu tag mwepụta akọwapụtara (dịka `v3.4.7`), buru ụzọ chọpụta na tag ahụ adịlarị na `upstream/main`: ```powershell git merge-base --is-ancestor v3.4.7 upstream/main ``` Nlaghachi gara nke ọma pụtara na `upstream/main` enweelarị ụdị ahụ; ị nwere ike ijikọta `upstream/main` ozugbo. ### 9.2 Usoro Mwepụta Ọkọlọtọ Mgbe Emekọrịtachara Upstream Mgbe emekọrịtachara ya na ebe nchekwa mbụ, soro usoro mwepụta a akwadoro: 1. `git fetch upstream --tags` 2. `git merge upstream/main` 3. Weghachite `fly.toml` nke fork ahụ 4. `git push origin main` 5. `flyctl deploy` 6. `flyctl status -a omniroute` 7. `flyctl logs --no-tail -a omniroute` Nke a bụ usoro ọrụ e ji mee ihe n'ezie mgbe a na-ebulite ọrụ dị ugbu a gaa na `v3.4.7` (ihe atụ a na-ezo aka na ụdị akụkọ ihe mere eme; ụdị dị ugbu a n'ezie bụ `v3.8.0`). --- ## 10. Nnyocha Mgbe Mbugharị Gasịrị ### 10.1 Lelee Ọnọdụ Ngwa ```powershell flyctl status -a omniroute ``` ### 10.2 Lelee Ndekọ Mmalite ```powershell flyctl logs --no-tail -a omniroute ``` ### 10.3 Nyochaa na Saịtị Nwere Ike Ịrụ Ọrụ ```powershell try { (Invoke-WebRequest -Uri "https://omniroute.fly.dev" -MaximumRedirection 5 -UseBasicParsing).StatusCode } catch { if ($_.Exception.Response) { $_.Exception.Response.StatusCode.value__ } else { throw } } ``` Uru nlọghachi nke `200` na-egosi na saịtị ahụ na-azaghachi dịka o kwesịrị. --- ## 11. Ihe Na-egosi Ihe Ịga nke Ọma Mgbe mbugharị gara nke ọma, ndekọ kwesịrị igosi ọdịnaya yiri nke a: ```text [bootstrap] Edebere ihe nzuzo na: /data/server.env [DB] Ebe nchekwa data SQLite adịla njikere: /data/storage.sqlite ``` Isi ihe abụọ ndị a dị oke mkpa: - `/data/server.env` na-akwado na edere ihe nzuzo oge ojiji na voluum na-adịgide adịgide - `/data/storage.sqlite` na-akwado na edere ebe nchekwa data na voluum na-adịgide adịgide Ọ bụrụ na ị hụ `/app/data/...` kama nke ahụ, ahazighị `DATA_DIR` nke ọma, a ga-edozikwa ya ozugbo. --- ## 12. Nsogbu Ndị A Na-ahụkarị ### 12.1 Ibe `Secrets` Ghe Ọtọ Ọ na-abụkarị n'ihi otu n'ime ihe abụọ ndị a: - Ị kabeghị agba `flyctl secrets set` - Ị na-ele ngwa dị iche (dịka ọmụmaatụ, `oroute` kama `omniroute`) ### 12.2 `flyctl deploy` Na-akọ `app not found` Buru ụzọ mepụta ngwa ahụ: ```powershell flyctl apps create omniroute ``` ### 12.3 Ntụgharị `fly.toml` Dara Lelee ihe ndị a: - Ma enwere mkpụrụedemede ghasara aghasa na nkọwa - Ma nhota na nhazi oghere TOML ziri ezi ### 12.4 Data Anaghị Adịgide Nyochaa ihe abụọ ndị a: - `fly.toml` nwere `destination = '/data'` - Atọrọ `DATA_DIR` ka ọ bụrụ `/data` ### 12.5 Ọ Nwere Ike Ịrụ Ọrụ Na-enweghị `INITIAL_PASSWORD`? Ee, ọ nwere ike ịrụ ọrụ. Ọ ga-alaghachi n'iji okwuntughe ndabara `CHANGEME`. A na-atụ aro ka ị gbanwee okwuntughe backend ozugbo enwere ike n'ebe nrụpụta. --- ## 13. Iji Ya Ọzọ Maka Ọrụ Ngo Ọhụrụ Ọ bụrụ na ị na-ebuga ọrụ ngo ọhụrụ site n'ịgbaso akwụkwọ a, naanị ihe ndị a ka ị ga-agbanwe: 1. Gbanwee uru `app` dị na `fly.toml` 2. Gbanwee `NEXT_PUBLIC_BASE_URL` 3. Debe `DATA_DIR=/data` 4. Mepụtaghachi `API_KEY_SECRET`, `JWT_SECRET`, `MACHINE_ID_SALT`, na `STORAGE_ENCRYPTION_KEY` 5. Mgbe mbugharị mbụ gasịrị, nyochaa na edere ndekọ na `/data` Ejikwala igodo sitere n'ọrụ ngo gara aga ọzọ. --- ## 14. Ndepụta Nyocha Mwepụta Kachasị Nta Maka Ọrụ Ngo Dị Ugbu A Iwu ndị a bụ ndị a na-ejikarị eme ihe maka mwepụta ndị na-esote: ```powershell flyctl auth whoami flyctl status -a omniroute flyctl secrets list -a omniroute flyctl deploy flyctl logs --no-tail -a omniroute ``` Maka mwepụta nkịtị, iwu bụ isi bụ naanị: ```powershell flyctl deploy ``` Maka mbugharị mbụ na gburugburu ọhụrụ, usoro ndị bụ isi bụ: 1. `flyctl auth login` 2. `flyctl apps create omniroute` 3. `flyctl secrets set ... -a omniroute` 4. `flyctl deploy` 5. `flyctl logs --no-tail -a omniroute`