From 4950ea2402360922ba03806afdb6f83c8f885122 Mon Sep 17 00:00:00 2001 From: itsamejms Date: Sat, 13 Jun 2026 11:23:36 +0100 Subject: [PATCH] moving from cloud run to OVHCloud VPS --- .gitignore | 3 +- Caddyfile | 3 + README.md | 63 ++++++++++++------- docker-compose.yml | 45 +++++++++++++ Dockerfile => gcloud-version/Dockerfile | 0 gcloud-version/README.md | 29 +++++++++ entrypoint.sh => gcloud-version/entrypoint.sh | 0 .../litestream.yml | 0 8 files changed, 118 insertions(+), 25 deletions(-) create mode 100644 Caddyfile create mode 100644 docker-compose.yml rename Dockerfile => gcloud-version/Dockerfile (100%) create mode 100644 gcloud-version/README.md rename entrypoint.sh => gcloud-version/entrypoint.sh (100%) rename litestream.yml => gcloud-version/litestream.yml (100%) diff --git a/.gitignore b/.gitignore index 2eea525..31eceb0 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -.env \ No newline at end of file +.env +gitea-dump \ No newline at end of file diff --git a/Caddyfile b/Caddyfile new file mode 100644 index 0000000..81013f2 --- /dev/null +++ b/Caddyfile @@ -0,0 +1,3 @@ +gitea.jms.rocks { + reverse_proxy server:3000 +} \ No newline at end of file diff --git a/README.md b/README.md index 05aaaeb..4d729b2 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,41 @@ -## GCP deploy -- `gcloud auth login` -- `gcloud config set project itsamejms` -- `gcloud auth application-default set-quota-project itsamejms` -- `gcloud run services list` -- `gcloud services enable run.googleapis.com artifactregistry.googleapis.com storage.googleapis.com` -- `gcloud storage buckets create gs://jms-git-bucket --location=europe-west1` # for snapshots -- `gcloud storage buckets create gs://jms-git-repos-storage --location=europe-west1` # for repositories .git folders - +### OVHCloud VPS deploy +VPS name: vps-123c23bd.vps.ovh.net +IPv4 address: 51.91.109.47 +IPv6 address: 2001:41d0:42b:61::1 +Username: ubuntu +Password: +- `ssh ubuntu@vps-123c23bd.vps.ovh.net` ``` -gcloud beta run deploy gitea-serverless \ - --source . \ - --region europe-west1 \ - --allow-unauthenticated \ - --max-instances 1 \ - --memory 1Gi \ - --port 3000 \ - --set-env-vars="GCS_BUCKET_NAME=jms-git-bucket" \ - --set-env-vars="GITEA_WORK_DIR=/data/gitea" \ - --set-env-vars="GITEA_CUSTOM=/data/gitea" \ - --set-env-vars="GCS_ACCESS_KEY=GCS_ACCESS_KEY" \ - --set-env-vars="GCS_SECRET_KEY=GCS_SECRET_KEY" \ ---add-volume=name=git-storage,type=cloud-storage,bucket=jms-git-repos-storage,mount-options="uid=1000;gid=1000;file-mode=0666;dir-mode=0777;stat-cache-ttl=600s;type-cache-ttl=600s" \ - --add-volume-mount=volume=git-storage,mount-path=/data/gitea/app_data/repositories -``` \ No newline at end of file +# 1. Update the system repository +sudo apt update && sudo apt upgrade -y + +# 2. Grab the required security certificates and curl +sudo apt install ca-certificates curl -y +sudo install -m 0755 -d /etc/apt/keyrings + +# 3. Download Docker's official GPG keying for package verification +sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc +sudo chmod a+r /etc/apt/keyrings/docker.asc + +# 4. Inject Docker's official repository into your system's source list +echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ + $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ + sudo tee /etc/apt/sources.list.d/docker.list > /dev/null + +# 5. Update your system packages using the new official source +sudo apt update + +# 6. Install the official Docker Engine and modern Compose Plugin +sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y + +# Give your 'ubuntu' user permission to use Docker without typing 'sudo' every time +sudo usermod -aG docker $USER +``` + +- `mkdir -p ~/gitea` +- `cd ~/gitea` +- `docker compose up -d` +- `docker compose logs` +- `scp -r /Users/jamestwose/Coding/jms-gitea/gcloud-version/gitea-dump/* ubuntu@vps-123c23bd.vps.ovh.net:~/gitea/gitea_data/` \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..797e025 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,45 @@ +networks: + gitea: + external: false + +services: + # 1. Gitea Core Engine (SQLite Variant) + server: + image: gitea/gitea:1.22 + container_name: gitea_server + restart: always + networks: + - gitea + volumes: + - ./gitea_data:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + environment: + - USER_UID=1000 + - USER_GID=1000 + # Force Gitea to lock right onto your imported database file + - GITEA__database__DB_TYPE=sqlite3 + - GITEA__database__PATH=/data/gitea.db + # Server URLs + - GITEA__server__DOMAIN=gitea.jms.rocks + - GITEA__server__ROOT_URL=https://gitea.jms.rocks/ + - GITEA__server__HTTP_PORT=3000 + - GITEA__server__SSH_PORT=2222 + ports: + - "127.0.0.1:3000:3000" + - "2222:22" + + # 2. SSL Reverse Proxy (Caddy) + caddy: + image: caddy:2-alpine + container_name: gitea_ssl + restart: always + ports: + - "80:80" + - "443:443" + volumes: + - ./Caddyfile:/etc/caddy/Caddyfile + - ./caddy_data:/data + - ./caddy_config:/config + networks: + - gitea \ No newline at end of file diff --git a/Dockerfile b/gcloud-version/Dockerfile similarity index 100% rename from Dockerfile rename to gcloud-version/Dockerfile diff --git a/gcloud-version/README.md b/gcloud-version/README.md new file mode 100644 index 0000000..fe7c4f2 --- /dev/null +++ b/gcloud-version/README.md @@ -0,0 +1,29 @@ +## GCP deploy +- `gcloud auth login` +- `gcloud config set project itsamejms` +- `gcloud auth application-default set-quota-project itsamejms` +- `gcloud run services list` +- `gcloud services enable run.googleapis.com artifactregistry.googleapis.com storage.googleapis.com` +- `gcloud storage buckets create gs://jms-git-bucket --location=europe-west1` # for snapshots +- `gcloud storage buckets create gs://jms-git-repos-storage --location=europe-west1` # for repositories .git folders + + +``` +gcloud beta run deploy gitea-serverless \ + --source . \ + --region europe-west1 \ + --allow-unauthenticated \ + --max-instances 1 \ + --memory 1Gi \ + --port 3000 \ + --set-env-vars="GCS_BUCKET_NAME=jms-git-bucket" \ + --set-env-vars="GITEA_WORK_DIR=/data/gitea" \ + --set-env-vars="GITEA_CUSTOM=/data/gitea" \ + --set-env-vars="GCS_ACCESS_KEY=GCS_ACCESS_KEY" \ + --set-env-vars="GCS_SECRET_KEY=GCS_SECRET_KEY" \ +--add-volume=name=git-storage,type=cloud-storage,bucket=jms-git-repos-storage,mount-options="uid=1000;gid=1000;file-mode=0666;dir-mode=0777;stat-cache-ttl=600s;type-cache-ttl=600s" \ + --add-volume-mount=volume=git-storage,mount-path=/data/gitea/app_data/repositories +``` + +### Gitea git dump +- `gcloud storage cp -r 'gs://jms-git-repos-storage/*' ./gitea-dump/` \ No newline at end of file diff --git a/entrypoint.sh b/gcloud-version/entrypoint.sh similarity index 100% rename from entrypoint.sh rename to gcloud-version/entrypoint.sh diff --git a/litestream.yml b/gcloud-version/litestream.yml similarity index 100% rename from litestream.yml rename to gcloud-version/litestream.yml