Wdróż aplikację Coder na Pethost jednym kliknięciem
Zdalne środowiska programistyczne z szablonów Terraform, otwierane w VS Code, JetBrains, przeglądarce albo przez SSH
Co się dzieje
- Logujesz się do Pethost albo zakładasz konto, kluczem dostępu, przez GitHub albo Google.
- Nie masz jeszcze maszyny? Wybierasz plan, a my ją dla ciebie przygotowujemy. Link czeka w twojej przeglądarce, aż będzie gotowa.
- Okno „Nowy projekt” otwiera się na tej aplikacji. Wypełniasz to, o co prosi, i klikasz „Utwórz projekt”: E-mail, Hasło administratora.
- Za minutę czy dwie aplikacja działa pod własnym adresem z HTTPS. Jej sekrety są tworzone losowo, a dane trafiają do nocnego backupu.
- To projekt jak każdy inny: jego compose.yaml, .env, logi i terminal są w panelu, a twój agent może go zmienić, cofnąć do wcześniejszej wersji albo przywrócić.
Pierwsze kroki
Zaloguj się adresem e-mail i hasłem administratora, które podano: szablon tworzy tego ownera przy pierwszym starcie. Workspace powstaje z szablonu: wybierz taki, który tworzy go w chmurze, w której masz konto, albo na Kubernetesie; szablon Dockera potrzebuje gniazda Dockera, którego projekt nie ma.
Co uruchamia
Szablon to ten compose.yaml i zmienne, które zapisuje do .env projektu. Pethost uruchamia plik dokładnie tak, jak jest napisany.
services:
coder:
image: ghcr.io/coder/coder:v2.37.4
restart: unless-stopped
environment:
CODER_PG_CONNECTION_URL: postgresql://coder:${POSTGRES_PASSWORD}@database/coder?sslmode=disable
CODER_HTTP_ADDRESS: 0.0.0.0:7080
CODER_ACCESS_URL: ${URL}
CODER_TELEMETRY_ENABLE: "false"
ADMIN_EMAIL: ${ADMIN_EMAIL}
ADMIN_PASSWORD: ${ADMIN_PASSWORD}
# A new Coder lets its first visitor create the owner account. So, before it answers on its
# own port, it is started on one nobody reaches and the email and password asked become the
# owner, the first time only.
entrypoint: ["/bin/sh", "-c"]
command:
- |
CODER_HTTP_ADDRESS=127.0.0.1:3001 /opt/coder server &
setup=$$!
tries=0
until wget -q -O /dev/null http://127.0.0.1:3001/healthz; do
tries=$$((tries + 1))
[ $$tries -lt 300 ] || exit 1
sleep 1
done
if ! wget -q -O /dev/null http://127.0.0.1:3001/api/v2/users/first; then
/opt/coder login http://127.0.0.1:3001 \
--first-user-username admin --first-user-full-name Admin \
--first-user-email "$$ADMIN_EMAIL" --first-user-password "$$ADMIN_PASSWORD" \
--first-user-trial=false || exit 1
fi
kill $$setup
wait $$setup
exec /opt/coder server
depends_on:
database:
condition: service_healthy
database:
image: postgres:17-alpine
restart: unless-stopped
environment:
POSTGRES_DB: coder
POSTGRES_USER: coder
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- db:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -h 127.0.0.1 -U coder -d coder"]
interval: 5s
timeout: 5s
retries: 10
start_period: 30s
volumes:
db: