Blog   We BRT
GitHub Mar 13, 2026
122 views

Aplicatie 2do cu deploy automat in Google Cloud si FTP

Crearea unei aplicatii 2do (pentru task-uri zilnice) cu deploy automat in Google Cloud si FTP

Aplicatie 2do cu deploy automat in Google Cloud si FTP

Cum functioneaza

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.


Structura repo

/
├── .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

Secrets GitHub

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 parola
FTP_HOST cPanel → FTP Accounts ftp.server.ro
FTP_USER cPanel → FTP Accounts user@server.ro
FTP_PASS cPanel → FTP Accounts parola_ftp
FTP_PATH calea pe server unde sta frontend-ul /home/razvantr/2do.razvan-traian.ro/

Configurare Google Cloud (o singura data)

Pasul 1 — Creeaza proiect

  1. Mergi la https://console.cloud.google.com
  2. Click pe selectorul de proiecte (sus) → New Project
  3. Numele proiectului: 2do-appCreate
  4. Retine Project ID (ex: 2do-app-123456) — il vei pune in GCP_PROJECT_ID

Pasul 2 — Activeaza API-urile necesare

gcloud services enable \
  run.googleapis.com \
  artifactregistry.googleapis.com \
  iam.googleapis.com \
  iamcredentials.googleapis.com \
  --project=do-app-razvan-traian

Pasul 3 — Creeaza Repository in Artifact Registry

  1. Cloud Console → Artifact Registry → Repositories → Create Repository
  2. Nume: 2do
  3. Format: Docker
  4. Region: europe-west1
  5. Click Create

Pasul 4 — Creeaza Service Account (pentru GitHub Actions)

  1. Cloud Console → IAM & Admin → Service Accounts → Create Service Account
  2. Nume: github-deployDone
  3. Click pe service account-ul creat → Keys → Add Key → JSON
  4. Se descarca un fisier .json — copiaza tot continutul in secretul GitHub GCP_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"

Pasul 5 — Prima rulare (doar prima data)

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 main

GitHub Actions va face build + deploy automat. La final vei primi URL-ul backend-ului:

https://backend-xxxx-ew.a.run.app

Configurare cPanel — razvan-traian.ro (o singura data)

Pasul 1 — Obtine credentiale FTP

  1. Logheaza-te in cPanel
  2. FTP Accounts → creeaza un cont FTP nou sau foloseste cel existent
  3. Retine: host, username, parola
  4. Pune-le in secretele GitHub: FTP_HOST, FTP_USER, FTP_PASS

Pasul 2 — Stabileste calea de deploy

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/

Pasul 3 — Fisierul .env pe server

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.


Testare locala

# 1. Porneste backend-ul
cd backend
docker compose up --build

# 2. Intr-un terminal separat, porneste frontend-ul
cd frontend
php -S localhost:8000

Deschide 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

Dupa setup — cum faci un deploy

# 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

GitHub repository: https://github.com/BrTDevil/2do-cloud

#GitHub #Google Cloud #FTP
Ce parere ai?
Distribuie articolul:

Articole asemanatoare

Analiză statică în Laravel cu PHPStan și Larastan

Analiză statică în Laravel cu PHPStan și Larastan

Acest ghid explică utilizarea PHPStan și Larastan pentru analiză statică în aplicațiile Laravel, de la instalare și configurare până la exemple practice și bune practici pentru menținerea calității codului.