Cara Self-host LiveContext: Panduan Setup Docker
Ketahui cara memasang LiveContext CE dengan stack enam kontena Docker. Panduan ini merangkumi keperluan RAM 8 GB, penetapan versi, konfigurasi Traefik, dan sandaran data.
Apakah itu LiveContext dan kos untuk menjalankannya
Untuk melakukan self-hosting LiveContext, anda memerlukan VPS dengan RAM sekitar 8 GB. LiveContext CE ialah platform automasi sumber terbuka yang menjalankan ejen AI di dalam automasi itu sendiri, dan ia diedarkan sebagai stack Docker Compose yang terdiri daripada enam kontena yang dibina berasaskan backend Java. README huluan (upstream) menetapkan keperluan minimum 4 GB dan 8 GB adalah disyorkan, manakala fail compose menunjukkan ke mana peruntukan memori tersebut pergi.
Projek ini berada di livecontext-ai/livecontext-ce di GitHub, dilesenkan di bawah AGPL-3.0. Keluaran semasa setakat Ogos 2026 ialah v0.2.11, yang diterbitkan pada 3 Ogos 2026. Setiap imej dibina untuk linux/amd64 sahaja, yang mengecualikan pelan Arm yang murah. Panduan ini menetapkan tag tersebut, meletakkan stack di belakang reverse proxy, dan merangkumi prosedur sandaran yang tidak disertakan dalam dokumentasi huluan.
Tentukan saiz VPS sebelum anda melakukan self-host LiveContext
Setiap servis dalam fail compose yang dibekalkan mempunyai had memori yang jelas, supaya anda boleh menentukan saiz pelayan sebelum menyewanya. Ini adalah had yang ditulis ke dalam fail compose v0.2.11, bukannya penggunaan yang diukur.
The data behind this chart
[
{
"label": "livecontext (backend)",
"memory_limit_mb": 1536
},
{
"label": "bridge",
"memory_limit_mb": 512
},
{
"label": "redis",
"memory_limit_mb": 384
},
{
"label": "postgres",
"memory_limit_mb": 256
},
{
"label": "minio",
"memory_limit_mb": 256
},
{
"label": "websearch (optional)",
"memory_limit_mb": 2048
},
{
"label": "searxng (optional)",
"memory_limit_mb": 512
},
{
"label": "renderer (optional)",
"memory_limit_mb": 1024
}
]Bahagian backend sahaja dihadkan kepada 1536 MB. Had tersebut diletakkan ke atas proses Java 21, jadi JVM akan menggunakan hampir keseluruhan ruang tersebut dan kekal di situ. Lima servis asas berjumlah kurang sedikit daripada 3 GB, dan bahagian frontend tidak mempunyai sebarang had, jadi ia mengambil apa sahaja yang diminta oleh Node. Pada VPS 4 GB, ini hampir tidak meninggalkan ruang untuk kernel dan page cache, itulah sebabnya 4 GB ditulis sebagai minimum dan bukannya saranan.
Profil pilihan adalah perkara yang menolak keperluan pelayan kepada 8 GB. Profil browser agent menambah kontena Chromium yang dihadkan kepada 2048 MB di sebelah instans carian SearXNG, dan profil renderer menambah lagi 1024 MB untuk tangkapan skrin dan PDF. Tiada satu pun yang bermula melainkan anda mendayakan profilnya, jadi biarkan kedua-duanya dimatikan sehingga anda memerlukannya. Kontena SearXNG itu wujud untuk menjadi backend carian bagi ejen tersebut, jadi halaman yang dikembalikannya sampai ke dalam prompt anda sebagai teks yang tidak dipercayai, iaitu sempadan kepercayaan yang dibincangkan secara terperinci dalam memberikan ejen AI carian web SearXNG.
Jika anda sudah menjalankan n8n, rancang untuk menggantikannya dan bukannya menambahnya. Stack dalam panduan kami untuk menjalankan n8n pada VPS dengan Docker dan HTTPS adalah satu proses Node di sebelah Postgres, dan ia selesa pada pelayan kecil. LiveContext menempah lebih banyak ruang untuk backend-nya sahaja berbanding keseluruhan penggunaan stack tersebut. Dua platform automasi pada satu VPS 8 GB akan muat sehingga kedua-duanya menjalankan tugasan pada minit yang sama. Jika anda berkongsi hos, letakkan had yang jelas pada semua perkara lain juga, menggunakan kaedah dalam siaran kami tentang menetapkan had memori dalam Docker Compose, supaya satu aliran kerja yang tidak terkawal tidak menjatuhkan mesin anda bersamanya.
Memasang LiveContext dengan Docker Compose, dikunci pada tag
Mulakan dengan VPS Ubuntu 24.04 yang bersih dengan Docker Engine 24 atau lebih baharu serta Compose v2. Jika Docker belum dipasang, ikuti asas Docker Compose kami untuk VPS terlebih dahulu, kemudian kembali ke sini.
README menawarkan npx livecontext sebagai permulaan satu baris. Ini sesuai untuk komputer riba. Pada pelayan, anda mahu fail compose berada dalam direktori yang anda kawal, kerana naik taraf kemudiannya hanyalah git checkout dan anda boleh membaca dengan tepat apa yang berubah.
sudo apt update && sudo apt install -y git
git clone https://github.com/livecontext-ai/livecontext-ce.git
cd livecontext-ce
git tag --list 'v*' | tail -5
git checkout v0.2.11
cp docker/.env.ce.example docker/.env.ce
chmod 600 docker/.env.ceFail compose sudah mengunci setiap imej pada tag keluarannya, contohnya ghcr.io/livecontext-ai/livecontext-ce:v0.2.11. Melakukan checkout pada tag git yang sepadan adalah perkara yang memastikan fail compose dan imej selari, kerana fail compose untuk v0.2.11 ditulis berdasarkan imej tersebut. Jangan ubah tag kepada latest. Tag latest berubah tanpa pengetahuan anda, dan bahagian backend menjalankan migrasi pangkalan datanya pada setiap permulaan, jadi pull yang tidak disengajakan boleh memajukan skema anda pada pukul 3 pagi tanpa cara untuk kembali kecuali melalui pemulihan.
Edit docker/.env.ce sebelum permulaan pertama (bahagian seterusnya menyenaraikan perkara yang perlu diubah), kemudian naikkan stack tersebut.
docker compose --env-file docker/.env.ce up -d
docker compose --env-file docker/.env.ce psGunakan flag --env-file yang sama pada setiap arahan compose dalam panduan ini. Compose membaca fail tersebut dengan segar pada setiap panggilan, jadi arahan tanpa flag tersebut akan kembali kepada lalai yang ditetapkan dalam fail compose dan boleh menerbitkan port yang berbeza daripada yang anda konfigurasikan.
Healthcheck backend mempunyai start_period selama 120s dan meninjau /actuator/health, jadi docker compose ps melaporkan perkhidmatan livecontext sebagai health: starting untuk kira-kira dua minit pertama sementara migrasi skema dan pendaftaran alat dijalankan. Itu adalah perkara biasa. Semakan pantas daripada pelayan:
curl -s localhost:8080/actuator/healthIni sepatutnya mencetak {"status":"UP"}. Apabila ia berlaku, buka UI web pada port 3000. Akaun pertama yang anda cipta menjadi admin, jadi cipta akaun anda sebelum port tersebut boleh dicapai oleh orang lain. Ini adalah sebab paling penting untuk tidak menerbitkan port 3000 ke internet pada hari pertama.
Nilai env yang perlu anda ubah
Fail contoh disertakan dengan tetapan lalai yang berfungsi supaya stack boleh dimulakan pada komputer riba. Beberapa daripadanya tidak selamat pada pelayan awam.
POSTGRES_PASSWORD=<random>
MINIO_ROOT_USER=<not minioadmin>
MINIO_ROOT_PASSWORD=<random>
CREDENTIAL_ENCRYPTION_PASSWORD=<random>
CREDENTIAL_ENCRYPTION_SALT=<random>
ANTHROPIC_API_KEY=sk-ant-...
FRONTEND_PORT=3000
BACKEND_PORT=8080
GATEWAY_PUBLIC_URL=https://lc-api.example.comJana setiap nilai rawak dengan openssl rand -base64 32. Nota tentang nilai yang kritikal:
POSTGRES_PASSWORDdanMINIO_ROOT_PASSWORDdisertakan sebagaipostgresdanminioadmin. Tiada port pangkalan data yang diterbitkan ke hos, jadi ia tidak terdedah secara terus, namun mana-mana kontena yang anda sambungkan ke rangkaian yang sama kemudiannya boleh mencapai kedua-duanya dengan nilai lalai yang didokumentasikan.CREDENTIAL_ENCRYPTION_PASSWORDdanCREDENTIAL_ENCRYPTION_SALTdijana secara automatik jika dibiarkan kosong. Tetapkan nilai tersebut sendiri. Kredensial yang disimpan oleh aliran kerja anda disulitkan dengan pasangan tersebut, jadi dump pangkalan data yang dipulihkan pada mesin baharu tanpa kata laluan dan salt yang sama akan menyebabkan baris kredensial tidak dapat dibaca. Tetapkan sekali sahaja, kemudian anggapdocker/.env.cesebagai sebahagian daripada sandaran.FRONTEND_PORTdanBACKEND_PORTdigantikan ke dalam pemetaan port sebagai${FRONTEND_PORT:-3000}:3000dan${BACKEND_PORT:-8080}:8080. Fail env contoh menetapkan kedua-duanya secara eksplisit, dan nilai yang disertakan tidak selalunya 3000 dan 8080. Baca salinan anda dan jangan membuat andaian.GATEWAY_PUBLIC_URLialah origin backend yang menghadap pelayar. Ia menjadi penting sebaik sahaja reverse proxy terlibat. Lihat bahagian seterusnya.- Kunci model (
ANTHROPIC_API_KEY,OPENAI_API_KEY,GOOGLE_API_KEY, dan secara pilihanMISTRAL_API_KEYatauDEEPSEEK_API_KEY) disimpan di sini dalam teks biasa. Isi hanya penyedia yang anda gunakan.
Fungsi enam kontena tersebut
postgresmenjalankanpgvector/pgvector:pg16sebagai kontenalivecontext-db, yang menyimpan pangkalan data bernamalivecontext. Sambungan pgvector disertakan untuk carian embedding, jadi imejpostgres:16biasa tidak mencukupi.redismenjalankanredis:7-alpinedenganappendonly yesdan--maxmemory-policy noeviction. Polisi tersebut adalah sengaja: Redis membawa baris gilir dan status pelaksanaan di sini, jadi apabila ia mencapai had memori, ia akan mengembalikan ralat kepada penulis dan bukannya membuang kunci secara senyap. Ralat yang boleh dilihat adalah lebih baik daripada kerja yang hilang begitu sahaja.minioialah storan objek yang serasi dengan S3 untuk fail yang bergerak melalui aliran kerja. Satu kontenaminio-initsekali jalan menjalankanmc mb myminio/workflow-files --ignore-existingsemasa permulaan, mencipta bucket, dan kemudian berhenti. Melihatminio-initsebagaiexited (0)dalamdocker compose psadalah status yang sihat.bridgemenempatkan penyesuai CLI dan alatan MCP (model context protocol). Ia mendengar pada port 8093 di dalam rangkaian Docker dan tidak diterbitkan ke hos.livecontextialah bahagian backend, satu monolit Java 21 pada port 8080. Ia menjalankan enjin aliran kerja, penjadual dan ejen.frontendialah UI web Next.js pada port 3000. Hanya dua yang terakhir ini diterbitkan ke hos.
Data kekal disimpan dalam lima volum bernama: livecontext_data untuk Postgres, livecontext_redis, livecontext_minio, livecontext_keys, dan livecontext_logs. Compose meletakkan awalan nama projek pada volum tersebut, yang secara lalai mengikut nama direktori, jadi volum sebenar pada cakera dinamakan seperti livecontext-ce_livecontext_minio. Jalankan docker volume ls dan salin nama yang tepat sebelum anda menulis sebarang skrip sandaran untuknya.
docker compose down -vmemadamkan kesemua lima volum. Ini adalah cara yang didokumentasikan untuk bermula semula, dan ia juga merupakan cara terpantas untuk kehilangan setiap aliran kerja yang telah anda bina.-vadalah perbezaan keseluruhannya.
Letakkan di sebalik Traefik dan bukannya menerbitkan port 3000
Menerbitkan port 3000 dan 8080 pada VPS awam mendedahkan aplikasi tanpa TLS (transport layer security) dan tanpa kawalan di hadapan pendaftaran pentadbir. Peraturan ufw sahaja tidak mencukupi, kerana Docker memasukkan peraturan iptables miliknya sendiri untuk port yang diterbitkan sebelum rantaian yang diuruskan oleh ufw. Oleh itu, port yang diterbitkan ke 0.0.0.0 kekal boleh dicapai walaupun ufw menyatakan port tersebut dinafikan.
Penyelesaian yang kemas adalah dengan tidak menerbitkan sebarang port dan membiarkan proksi mencapai kontena melalui rangkaian Docker yang dikongsi. Cipta docker-compose.override.yml dalam root repositori:
services:
frontend:
ports: !override []
networks:
- default
- proxy
livecontext:
ports: !override []
networks:
- default
- proxy
networks:
proxy:
external: trueDua perincian menentukan sama ada ini berfungsi. !override menggantikan senarai ports dan bukannya menggabungkannya, yang memerlukan Compose v2.24 atau lebih baharu: semak dengan docker compose version, kerana pada Compose yang lebih lama, kedua-dua senarai akan bergabung dan port kekal diterbitkan. Selain itu, default mesti kekal dalam setiap senarai networks, kerana menamakan mana-mana rangkaian akan menggantikan rangkaian lalai. Jika ia ditinggalkan, frontend akan terputus daripada Postgres dan Redis. Sahkan hasil gabungan sebelum memulakan apa-apa:
docker compose --env-file docker/.env.ce configRouter, penyelesai sijil (certificate resolver) dan pengalihan HTTP ke HTTPS adalah sama seperti aplikasi lain. Oleh itu, ikuti panduan proksi terbalik Traefik kami untuk menjalankan berbilang aplikasi pada satu VPS dan bukannya menulis konfigurasi TLS baharu di sini. Halakan satu hostname ke frontend pada port 3000 dan hostname kedua ke livecontext pada port 8080.
Hostname kedua adalah wajib. UI web memanggil backend daripada pelayar, jadi backend memerlukan origin sendiri yang boleh dicapai oleh pelayar. Tetapkan GATEWAY_PUBLIC_URL dalam docker/.env.ce kepada URL backend tersebut, contohnya https://lc-api.example.com. Jika dilangkau, halaman akan dimuatkan seperti biasa tetapi setiap tindakan akan gagal, kerana UI menyelesaikan origin backend daripada alamat yang anda buka dan ia memanggil port yang tidak pernah diterbitkan oleh proksi anda.
Memandangkan halaman pendaftaran terbuka kepada sesiapa sahaja yang mengaksesnya, adalah wajar untuk meletakkan pengesahan (auth) pada router frontend supaya tiada sesiapa yang melihat halaman tersebut tanpa mengesahkan diri di proksi. Inilah yang ditambah oleh menjalankan Authentik sebagai lapisan SSO anda sendiri di atas persediaan Traefik yang sama.
Lokasi kunci model dan sebab instans melahu tetap dikenakan bayaran
Ejen berjalan di dalam automasi di sini, yang mengubah ekonomi berbanding alat aliran kerja biasa. Kunci pembekal diletakkan dalam docker/.env.ce sebagai ANTHROPIC_API_KEY atau OPENAI_API_KEY, dibaca oleh bahagian belakang (backend) dan jambatan (bridge) semasa permulaan, dan terpakai untuk keseluruhan instans. Ia tidak dihadkan mengikut pengguna. Sesiapa yang mempunyai akaun pada instans anda dan boleh membina ejen akan menggunakan kunci tersebut, dan orang pertama yang mendaftar adalah pentadbir.
Tiga tabiat memastikan bil anda boleh diramal. Cipta kunci pembekal yang berasingan untuk VPS ini supaya anda boleh membatalkannya tanpa menjejaskan perkara lain. Tetapkan had perbelanjaan yang ketat dalam konsol pembekal, kerana had tersebut adalah satu-satunya kawalan di luar mesin yang anda lindungi. Kemudian, gunakan bajet kredit setiap ejen dan metrik setiap ejen yang didedahkan oleh LiveContext, supaya satu gelung tidak boleh menghabiskan kunci tersebut sebelum anda menyedarinya.
Kos melahu tidak menjadi sifar sebaik sahaja ejen diletakkan pada jadual. Pencetus jadual akan berfungsi sama ada seseorang memantaunya atau tidak, dan setiap pencetusan akan menghantar token. Jadual lima minit bermakna 288 pelaksanaan sehari, dan ejen yang membaca halaman serta memutuskan untuk tidak melakukan apa-apa tetap perlu membayar untuk membaca halaman tersebut. Letakkan ejen pertama anda pada webhook atau pencetus sembang, pantau perbelanjaan sebenar selama seminggu, dan beralih kepada jadual selepas anda mengetahui kos bagi setiap pelaksanaan.
Sandarkan Postgres dan storan objek
Terdapat dua storan data serta satu rahsia, dan kehilangan mana-mana satu daripada ketiganya akan menyebabkan kehilangan instans anda. Lakukan sandaran pangkalan data dan bucket dalam tetingkap masa yang sama, dengan backend dihentikan, supaya fail tidak boleh ditulis selepas baris pangkalan datanya disalin (dump).
cd ~/livecontext-ce
mkdir -p ~/backups
docker compose --env-file docker/.env.ce stop livecontext frontend
docker compose --env-file docker/.env.ce exec -T postgres \
pg_dump -U postgres -d livecontext --clean --if-exists \
| gzip > ~/backups/livecontext-db-$(date +%F).sql.gzGunakan apa sahaja yang anda tetapkan sebagai DB_USERNAME sebagai ganti postgres jika anda telah mengubahnya. Kemudian, salin volum storan objek menggunakan nama berawalan yang dicetak oleh docker volume ls:
docker run --rm \
-v livecontext-ce_livecontext_minio:/data \
-v ~/backups:/backup \
alpine tar czf /backup/livecontext-minio-$(date +%F).tgz -C /data .
docker compose --env-file docker/.env.ce start livecontext frontend
cp docker/.env.ce ~/backups/env.ce.$(date +%F)Pastikan fail dump tidak kosong sebelum anda mempercayainya: gunzip -c ~/backups/livecontext-db-*.sql.gz | head -20 sepatutnya menunjukkan pernyataan CREATE TABLE dan DROP TABLE, bukan ralat satu baris. Kemudian, salin ketiga-tiga fail tersebut keluar dari pelayan. Sandaran yang hanya disimpan pada mesin yang dilindunginya bukanlah satu sandaran.
Untuk memulihkan ke dalam mesin baharu, pasang tag yang sama, letakkan semula docker/.env.ce yang telah disimpan supaya kata laluan penyulitan kelayakan dan salt sepadan, mulakan stack sekali supaya volum wujud, hentikan backend, kemudian muatkan fail dump tersebut:
gunzip -c livecontext-db-2026-08-10.sql.gz \
| docker compose --env-file docker/.env.ce exec -T postgres psql -U postgres -d livecontextNaik taraf, dan cara pemulihan jika berlaku kegagalan
Sentiasa buat dump terlebih dahulu, setiap kali. Bahagian backend melaksanakan migrasi skema semasa permulaan dan migrasi hanya bergerak ke hadapan. Oleh itu, menukar kepada tag lama selepas naik taraf yang gagal akan menyebabkan kod lama berjalan pada skema yang lebih baharu. Rollback bermaksud memulihkan dump, itulah sebabnya dump perlu dilakukan terlebih dahulu.
cd ~/livecontext-ce
git fetch --tags
git tag --list 'v*' | tail -5
TAG=v0.2.11
git checkout "$TAG"
docker compose --env-file docker/.env.ce pull
docker compose --env-file docker/.env.ce up -d
docker compose --env-file docker/.env.ce logs -f livecontextTetapkan TAG kepada tag yang anda pilih daripada senarai yang dicetak oleh arahan ketiga. Pantau log backend sehingga endpoint kesihatan menjawab semula. docker-compose.override.yml anda tidak dijejaki, jadi git checkout akan membiarkannya di tempat asal. Walau bagaimanapun, baca diff pada docker-compose.yml antara tag, kerana servis baharu atau servis yang dinamakan semula boleh menyebabkan override anda menjadi lapuk tanpa sebarang mesej ralat.
Mod kegagalan, berserta rentetan yang akan anda lihat
Bekas (container) terus dimulakan semula dan docker compose ps menunjukkan exited (137). Ini adalah pembunuh out-of-memory kernel, dan docker inspect livecontext-app mengesahkannya dengan "OOMKilled": true dalam blok status. Bahagian belakang (backend) telah mencapai had 1536M miliknya, atau hos kehabisan memori terlebih dahulu. Semak free -m sebelum menaikkan sebarang had, kerana menaikkan had bekas pada hos yang tidak mempunyai ruang simpanan hanya akan memindahkan tindakan pembunuhan tersebut ke bekas yang lain.
Proses pull gagal dengan no matching manifest for linux/arm64/v8 in the manifest list entries. Imej-imej tersebut diterbitkan untuk linux/amd64 sahaja. VPS Arm tidak boleh menjalankan tindanan (stack) ini daripada imej yang diterbitkan, dan emulasi melalui QEMU adalah terlalu perlahan untuk JVM ditambah Chromium. Beralihlah kepada pelan x86.
Bind for 0.0.0.0:3000 failed: port is already allocated. Sesuatu yang lain pada hos sudah menggunakan port tersebut. Tukar FRONTEND_PORT dalam docker/.env.ce, atau gunakan override di atas dan jangan terbitkan apa-apa.
UI aktif tetapi permintaan log masuk gagal selepas anda menambah proksi. Pelayar sedang memanggil bahagian belakang pada asal (origin) yang tidak diservis oleh proksi anda. Buka tab rangkaian pelayar dan lihat hos permintaan yang gagal. Tetapkan GATEWAY_PUBLIC_URL kepada URL bahagian belakang awam dan cipta semula bekas bahagian hadapan (frontend), kerana nilai tersebut dibaca semasa permulaan.
Semuanya sihat tetapi fail yang dimuat naik dalam aliran kerja hilang. Semak sama ada minio-init menunjukkan exited (0) dan bukannya kod bukan sifar. Jika baldi (bucket) workflow-files tidak pernah dicipta, bahagian belakang tidak mempunyai tempat untuk meletakkan objek.
Pilih antara LiveContext atau n8n
Pilih LiveContext jika ejen adalah fokus utama: anda mahu model membina dan menjalankan automasi tersebut, dan anda menerima penggunaan pelayan 8 GB serta servis Java sebagai kosnya. Pilih n8n jika anda mahukan aliran kerja yang deterministik, pustaka nod yang besar, dan jejak memori yang membolehkan ia berkongsi VPS dengan servis lain. Nombor versi di sini masih baharu, v0.2.11 setakat Ogos 2026, jadi tetapkan tag anda dan baca nota keluaran sebelum setiap naik taraf. Untuk gambaran yang lebih luas, termasuk alatan yang berada di antara kedua-dua kedudukan ini, lihat senarai alternatif n8n yang dihoskan sendiri oleh kami daripada hanya membaca perbandingan antara kedua-duanya sahaja.
FAQ
Berapakah RAM yang diperlukan oleh LiveContext yang dihoskan sendiri?
Rancang untuk 8 GB. README hulu menyenaraikan 4 GB sebagai minimum dan 8 GB sebagai saranan, dan fail compose yang dibekalkan sepadan dengan itu: bahagian backend sahaja dihadkan pada 1536 MB, dan lima servis asas secara keseluruhan berjumlah kurang sedikit daripada 3 GB sebelum mengambil kira kontena frontend yang tidak terhad. Mendayakan profil ejen pelayar menambah lagi 2048 MB untuk Chromium serta kontena SearXNG, jadi 8 GB bukan lagi pilihan pada tahap tersebut.
Bolehkah saya menjalankan LiveContext pada VPS Arm?
Tidak. Setiap imej yang diterbitkan dibina untuk linux/amd64, jadi docker compose up pada pelan Arm akan gagal semasa proses pull dengan no matching manifest for linux/arm64/v8 in the manifest list entries. Menjalankannya di bawah emulasi QEMU mungkin secara teori tetapi tidak boleh digunakan secara praktikal untuk beban kerja JVM. Pilih pelan x86.
Di manakah saya perlu meletakkan kunci API model saya?
Di dalam docker/.env.ce, sebagai ANTHROPIC_API_KEY, OPENAI_API_KEY atau GOOGLE_API_KEY, sebelum permulaan pertama. Backend dan bridge membacanya semasa permulaan, dan ia terpakai kepada keseluruhan instans dan bukannya kepada satu pengguna sahaja. Pastikan fail berada pada mod 600, gunakan kunci yang dicipta khusus untuk pelayan ini supaya anda boleh membatalkannya secara berasingan, dan tetapkan had perbelanjaan dalam konsol pembekal, kerana had tersebut adalah satu-satunya had yang wujud di luar mesin.
Bagaimanakah cara saya membuat sandaran LiveContext?
Tiga perkara: pg_dump pangkalan data livecontext, salinan volum MinIO, dan fail docker/.env.ce. Hentikan servis livecontext dan frontend semasa anda mengambil dua yang pertama supaya pangkalan data dan storan objek selari antara satu sama lain. Fail env penting kerana kelayakan yang disimpan dalam aliran kerja anda disulitkan dengan CREDENTIAL_ENCRYPTION_PASSWORD dan CREDENTIAL_ENCRYPTION_SALT, jadi pemulihan tanpa nilai tersebut akan meninggalkan baris kelayakan yang tidak boleh dibaca oleh apa-apa pun pada kotak baharu.
Mengapakah backend berada pada health: starting selama beberapa minit selepas but?
Pemeriksaan kesihatan compose menetapkan start_period: 120s dan meninjau /actuator/health, jadi Docker melaporkan servis sebagai sedang bermula sementara migrasi skema dan pendaftaran alat dijalankan. Dua hingga tiga minit pada but pertama adalah perkara biasa. Jika ia tidak pernah menjadi sihat, baca docker compose logs -f livecontext. Stak yang terhenti pada langkah migrasi biasanya dihalakan ke volum pangkalan data daripada keluaran yang lebih baharu.