Skip to content

BrTDevil/2do-cloud

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 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_TOKEN si APP_PASSWORD sunt injectate automat de GitHub Actions intr-un fisier .env la fiecare deploy. Nu mai trebuie creat manual pe server.


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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors