git push origin main
↓
backend/** modificat? → GitHub Actions → Docker Build → Cloud Run (Google Cloud)
frontend/** modificat? → GitHub Actions → FTP Upload → razvan-traian.ro
Tot deploy-ul se face automat dintr-un singur git push. Nu trebuie configurat nimic in Cloud Build.
/
├── .github/workflows/
│ ├── deploy-backend.yml ← deploy automat backend pe Cloud Run
│ └── deploy-frontend.yml ← deploy automat frontend pe razvan-traian.ro
├── backend/
│ ├── index.php
│ ├── .htaccess
│ ├── Dockerfile
│ ├── docker-compose.yml ← testare locala
│ ├── .env ← NU se urca in git
│ └── .env.example
├── frontend/
│ ├── index.php
│ ├── sw.js
│ ├── manifest.json
│ ├── icons/
│ ├── .htaccess
│ └── .env ← NU se urca in git
└── storage/ ← SQLite doar local
Repo → Settings → Secrets and variables → Actions → New repository secret
Adauga urmatoarele secrete:
| Secret | De unde il iei | Exemplu |
|---|---|---|
GCP_PROJECT_ID |
Google Cloud → numele proiectului | 2do-app-123456 |
GCP_SA_KEY |
Google Cloud → Service Account → JSON key (vezi pasul 3) | {"type":"service_account",...} |
BEARER_TOKEN |
generat de tine cu openssl rand -hex 32 |
a3f9... |
BACKEND_URL |
URL-ul Cloud Run primit dupa primul deploy | https://backend-xxxx-ew.a.run.app |
APP_PASSWORD |
parola pentru lock screen-ul aplicatiei | ro10bibu |
FTP_HOST |
cPanel → FTP Accounts | ftp.razvan-traian.ro |
FTP_USER |
cPanel → FTP Accounts | user@razvan-traian.ro |
FTP_PASS |
cPanel → FTP Accounts | parola_ftp |
FTP_PATH |
calea pe server unde sta frontend-ul | /home/razvantr/2do.razvan-traian.ro/ |
Nota: Secretele
BACKEND_URL,BEARER_TOKENsiAPP_PASSWORDsunt injectate automat de GitHub Actions intr-un fisier.envla fiecare deploy. Nu mai trebuie creat manual pe server.
- Mergi la https://console.cloud.google.com
- Click pe selectorul de proiecte (sus) → New Project
- Numele proiectului:
2do-app→ Create - Retine Project ID (ex:
2do-app-123456) — il vei pune inGCP_PROJECT_ID
gcloud services enable \
run.googleapis.com \
artifactregistry.googleapis.com \
iam.googleapis.com \
iamcredentials.googleapis.com \
--project=do-app-razvan-traian- Cloud Console → Artifact Registry → Repositories → Create Repository
- Nume:
2do - Format:
Docker - Region:
europe-west1 - Click Create
- Cloud Console → IAM & Admin → Service Accounts → Create Service Account
- Nume:
github-deploy→ Done - Click pe service account-ul creat → Keys → Add Key → JSON
- Se descarca un fisier
.json— copiaza tot continutul in secretul GitHubGCP_SA_KEY
Acum da-i permisiunile necesare din terminal:
SA_EMAIL="github-deploy@do-app-razvan-traian.iam.gserviceaccount.com"
PROJECT_ID="do-app-razvan-traian"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SA_EMAIL" --role="roles/artifactregistry.writer"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SA_EMAIL" --role="roles/run.admin"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SA_EMAIL" --role="roles/iam.serviceAccountUser"
gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SA_EMAIL" --role="roles/storage.admin"Dupa ce ai pus toate secretele in GitHub, fa un push in backend/:
# modifica orice fisier din backend/ ca sa declansezi workflow-ul
git add backend/
git commit -m "initial backend deploy"
git push origin mainGitHub Actions va face build + deploy automat. La final vei primi URL-ul backend-ului:
https://backend-xxxx-ew.a.run.app
- Logheaza-te in cPanel
- FTP Accounts → creeaza un cont FTP nou sau foloseste cel existent
- Retine: host, username, parola
- Pune-le in secretele GitHub:
FTP_HOST,FTP_USER,FTP_PASS
In FTP_PATH pune calea exacta de pe server unde vrei sa fie frontend-ul.
Ex: daca vrei la https://razvan-traian.ro/2do/ → FTP_PATH = /public_html/2do/
Fisierul .env pentru frontend este creat automat de GitHub Actions la fiecare deploy, folosind secretele din GitHub (BACKEND_URL, BEARER_TOKEN, APP_PASSWORD). Nu trebuie sa il creezi manual.
Asigura-te ca ai adaugat toate secretele din tabelul de mai sus in GitHub → Settings → Secrets.
# 1. Porneste backend-ul
cd backend
docker compose up --build
# 2. Intr-un terminal separat, porneste frontend-ul
cd frontend
php -S localhost:8000Deschide http://localhost:8000 in browser.
backend/.env pentru local:
BEARER_TOKEN=orice_token_local
SQLITE_PATH=/tmp/tasks.db
frontend/.env pentru local:
BEARER_TOKEN=orice_token_local
BACKEND_URL=http://localhost:8080
APP_PASSWORD=ro10bibu
# Modifica cod, apoi:
git add .
git commit -m "descriere modificare"
git push origin main- Daca ai modificat ceva in
backend/→ se deploiaza automat pe Cloud Run - Daca ai modificat ceva in
frontend/→ se uploadeaza automat pe razvan-traian.ro via FTP - Daca ai modificat ambele → ambele se deploiaza in paralel