Skip to content

Commit

Permalink
Gitea with Let's Encrypt Using Docker Compose
Browse files Browse the repository at this point in the history
  • Loading branch information
heyvaldemar authored Jan 12, 2025
1 parent 3d11d49 commit 9b97c9a
Show file tree
Hide file tree
Showing 5 changed files with 189 additions and 142 deletions.
7 changes: 5 additions & 2 deletions .env
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
# Traefik Variables
TRAEFIK_IMAGE_TAG=traefik:2.9
TRAEFIK_IMAGE_TAG=traefik:3.2
# Set the log level (DEBUG, INFO, WARN, ERROR)
TRAEFIK_LOG_LEVEL=WARN
TRAEFIK_ACME_EMAIL=callvaldemar@gmail.com
# The email address used by Let's Encrypt for renewal notices
TRAEFIK_ACME_EMAIL=admin@example.com
# The hostname used to access the Traefik dashboard and to configure domain-specific rules
TRAEFIK_HOSTNAME=traefik.gitea.heyvaldemar.net
# Basic Authentication for Traefik Dashboard
# Username: traefikadmin
Expand Down
11 changes: 11 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:
- package-ecosystem: "github-actions" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "weekly"
74 changes: 47 additions & 27 deletions .github/workflows/00-deployment-verification.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,39 +12,59 @@ jobs:
deploy-and-test:
runs-on: ubuntu-latest

env:
NETWORK_ONE: gitea-network
NETWORK_TWO: traefik-network
DOCKER_COMPOSE_FILE: gitea-traefik-letsencrypt-docker-compose.yml
APP_HOSTNAME: gitea.heyvaldemar.net
APP_TRAEFIK_HOSTNAME: traefik.gitea.heyvaldemar.net
COMPOSE_PROJECT_NAME: gitea

steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Checkout repository
uses: actions/checkout@v4

- name: Create necessary Docker networks
run: |
docker network create $NETWORK_ONE || true
docker network create $NETWORK_TWO || true
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Start up services using Docker Compose
run: docker compose -f $DOCKER_COMPOSE_FILE -p $COMPOSE_PROJECT_NAME up -d

- name: Create necessary Docker networks
run: |
docker network create gitea-network || true
docker network create traefik-network || true
- name: Modify /etc/hosts for internal routing
run: |
echo "127.0.0.1 $APP_HOSTNAME" | sudo tee -a /etc/hosts
echo "127.0.0.1 $APP_TRAEFIK_HOSTNAME" | sudo tee -a /etc/hosts
- name: Start up services using Docker Compose
run: docker compose -f gitea-traefik-letsencrypt-docker-compose.yml up -d
- name: Print Docker Compose services status
run: docker ps

- name: Modify /etc/hosts for internal routing
run: |
echo "127.0.0.1 gitea.heyvaldemar.net" | sudo tee -a /etc/hosts
echo "127.0.0.1 traefik.gitea.heyvaldemar.net" | sudo tee -a /etc/hosts
- name: Wait for the application to be ready via Traefik
run: |
echo "Checking the routing and availability of the application via Traefik..."
timeout 5m bash -c 'while ! curl -fsSLk "https://$APP_HOSTNAME"; do \
echo "Waiting for the application to be ready..."; \
sleep 10; \
done'
- name: Print Docker Compose services status
run: docker ps
- name: Wait for the Traefik dashboard to be ready
run: |
echo "Checking the routing and availability of the Traefik dashboard..."
timeout 5m bash -c 'while ! curl -fsSLk --write-out "%{http_code}" --output /dev/null "https://$APP_TRAEFIK_HOSTNAME" | grep -E "200|401"; do \
echo "Waiting for the application to be ready..."; \
sleep 10; \
done'
- name: Wait for the application to be ready via Traefik
run: |
echo "Checking the routing and availability of application via Traefik..."
timeout 5m bash -c 'while ! curl -fsSLk "https://gitea.heyvaldemar.net"; do echo "Waiting for the application to be ready..."; sleep 10; done'
- name: Inspect Network Configuration
run: |
docker network inspect $NETWORK_ONE
docker network inspect $NETWORK_TWO
- name: Inspect Network Configuration
run: |
docker network inspect gitea-network
docker network inspect traefik-network
- name: Show container logs on failure
if: failure()
run: docker compose -f $DOCKER_COMPOSE_FILE -p $COMPOSE_PROJECT_NAME logs

- name: Shutdown Docker Compose services
if: always()
run: docker compose -f gitea-traefik-letsencrypt-docker-compose.yml down
- name: Shutdown Docker Compose services
if: always()
run: docker compose -f $DOCKER_COMPOSE_FILE -p $COMPOSE_PROJECT_NAME down
101 changes: 76 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Deploy Gitea using Docker Compose:

`docker compose -f gitea-traefik-letsencrypt-docker-compose.yml -p gitea up -d`

# Backups
## Backups

The `backups` container in the configuration is responsible for the following:

Expand All @@ -35,7 +35,7 @@ Customizable backup path, filename pattern, and schedule through variables like

By utilizing this container, consistent and automated backups of the essential components of your instance are ensured. Moreover, efficient management of backup storage and tailored backup routines can be achieved through easy and flexible configuration using environment variables.

# gitea-restore-database.sh Description
## gitea-restore-database.sh Description

This script facilitates the restoration of a database backup:

Expand All @@ -57,7 +57,7 @@ To make the `gitea-restore-database.shh` script executable, run the following co

Usage of this script ensures a controlled and guided process to restore the database from an existing backup.

# gitea-restore-application-data.sh Description
## gitea-restore-application-data.sh Description

This script is designed to restore the application data:

Expand All @@ -79,31 +79,82 @@ To make the `gitea-restore-application-data.sh` script executable, run the follo

By utilizing this script, you can efficiently restore application data from an existing backup while ensuring proper coordination with the running service.

# Author
## Author

I’m Vladimir Mikhalev, the [Docker Captain](https://www.docker.com/captains/vladimir-mikhalev/), but my friends can call me Valdemar.
hey everyone,

🌐 My [website](https://www.heyvaldemar.com/) with detailed IT guides\
🎬 Follow me on [YouTube](https://www.youtube.com/channel/UCf85kQ0u1sYTTTyKVpxrlyQ?sub_confirmation=1)\
🐦 Follow me on [Twitter](https://twitter.com/heyValdemar)\
🎨 Follow me on [Instagram](https://www.instagram.com/heyvaldemar/)\
🧡 Follow me on [Threads](https://www.threads.net/@heyvaldemar)\
🐘 Follow me on [Mastodon](https://mastodon.social/@heyvaldemar)\
🧊 Follow me on [Bluesky](https://bsky.app/profile/heyvaldemar.bsky.social)\
🎸 Follow me on [Facebook](https://www.facebook.com/heyValdemarFB/)\
πŸŽ₯ Follow me on [TikTok](https://www.tiktok.com/@heyvaldemar)\
πŸ’» Follow me on [LinkedIn](https://www.linkedin.com/in/heyvaldemar/)\
🐈 Follow me on [GitHub](https://github.com/heyvaldemar)
πŸ’Ύ I’ve been in the IT game for over 20 years, cutting my teeth with some big names like [IBM](https://www.linkedin.com/in/heyvaldemar/), [Thales](https://www.linkedin.com/in/heyvaldemar/), and [Amazon](https://www.linkedin.com/in/heyvaldemar/). These days, I wear the hat of a DevOps Consultant and Team Lead, but what really gets me going is Docker and container technology - I’m kind of obsessed!

# Communication
πŸ’› I have my own IT [blog](https://www.heyvaldemar.com/), where I’ve built a [community](https://discord.gg/AJQGCCBcqf) of DevOps enthusiasts who share my love for all things Docker, containers, and IT technologies in general. And to make sure everyone can jump on this awesome DevOps train, I write super detailed guides (seriously, they’re foolproof!) that help even newbies deploy and manage complex IT solutions.

πŸ‘Ύ Chat with IT pros on [Discord](https://discord.gg/AJQGCCBcqf)\
πŸ“§ Reach me at ask@sre.gg
πŸš€ My dream is to empower every single person in the DevOps community to squeeze every last drop of potential out of Docker and container tech.

# Give Thanks
🐳 As a [Docker Captain](https://www.docker.com/captains/vladimir-mikhalev/), I’m stoked to share my knowledge, experiences, and a good dose of passion for the tech. My aim is to encourage learning, innovation, and growth, and to inspire the next generation of IT whizz-kids to push Docker and container tech to its limits.

πŸ’Ž Support on [GitHub](https://github.com/sponsors/heyValdemar)\
πŸ† Support on [Patreon](https://www.patreon.com/heyValdemar)\
πŸ₯€ Support on [BuyMeaCoffee](https://www.buymeacoffee.com/heyValdemar)\
πŸͺ Support on [Ko-fi](https://ko-fi.com/heyValdemar)\
πŸ’– Support on [PayPal](https://www.paypal.com/paypalme/heyValdemarCOM)
Let’s do this together!

## My 2D Portfolio

πŸ•ΉοΈ Click into [sre.gg](https://www.sre.gg/) β€” my virtual space is a 2D pixel-art portfolio inviting you to interact with elements that encapsulate the milestones of my DevOps career.

## My Courses

πŸŽ“ Dive into my [comprehensive IT courses](https://www.heyvaldemar.com/courses/) designed for enthusiasts and professionals alike. Whether you're looking to master Docker, conquer Kubernetes, or advance your DevOps skills, my courses provide a structured pathway to enhancing your technical prowess.

πŸ”‘ [Each course](https://www.udemy.com/user/heyvaldemar/) is built from the ground up with real-world scenarios in mind, ensuring that you gain practical knowledge and hands-on experience. From beginners to seasoned professionals, there's something here for everyone to elevate their IT skills.

## My Services

πŸ’Ό Take a look at my [service catalog](https://www.heyvaldemar.com/services/) and find out how we can make your technological life better. Whether it's increasing the efficiency of your IT infrastructure, advancing your career, or expanding your technological horizons β€” I'm here to help you achieve your goals. From DevOps transformations to building gaming computers β€” let's make your technology unparalleled!

## Patreon Exclusives

πŸ† Join my [Patreon](https://www.patreon.com/heyvaldemar) and dive deep into the world of Docker and DevOps with exclusive content tailored for IT enthusiasts and professionals. As your experienced guide, I offer a range of membership tiers designed to suit everyone from newbies to IT experts.

## My Recommendations

πŸ“• Check out my collection of [essential DevOps books](https://kit.co/heyvaldemar/essential-devops-books)\
πŸ–₯️ Check out my [studio streaming and recording kit](https://kit.co/heyvaldemar/my-studio-streaming-and-recording-kit)\
πŸ“‘ Check out my [streaming starter kit](https://kit.co/heyvaldemar/streaming-starter-kit)

## Follow Me

🎬 [YouTube](https://www.youtube.com/channel/UCf85kQ0u1sYTTTyKVpxrlyQ?sub_confirmation=1)\
🐦 [X / Twitter](https://twitter.com/heyvaldemar)\
🎨 [Instagram](https://www.instagram.com/heyvaldemar/)\
🐘 [Mastodon](https://mastodon.social/@heyvaldemar)\
🧡 [Threads](https://www.threads.net/@heyvaldemar)\
🎸 [Facebook](https://www.facebook.com/heyvaldemarFB/)\
🧊 [Bluesky](https://bsky.app/profile/heyvaldemar.bsky.social)\
πŸŽ₯ [TikTok](https://www.tiktok.com/@heyvaldemar)\
πŸ’» [LinkedIn](https://www.linkedin.com/in/heyvaldemar/)\
πŸ“£ [daily.dev Squad](https://app.daily.dev/squads/devopscompass)\
🧩 [LeetCode](https://leetcode.com/u/heyvaldemar/)\
🐈 [GitHub](https://github.com/heyvaldemar)

## Community of IT Experts

πŸ‘Ύ [Discord](https://discord.gg/AJQGCCBcqf)

## Refill My Coffee Supplies

πŸ’– [PayPal](https://www.paypal.com/paypalme/heyvaldemarCOM)\
πŸ† [Patreon](https://www.patreon.com/heyvaldemar)\
πŸ’Ž [GitHub](https://github.com/sponsors/heyvaldemar)\
πŸ₯€ [BuyMeaCoffee](https://www.buymeacoffee.com/heyvaldemar)\
πŸͺ [Ko-fi](https://ko-fi.com/heyvaldemar)

🌟 **Bitcoin (BTC):** bc1q2fq0k2lvdythdrj4ep20metjwnjuf7wccpckxc\
πŸ”Ή **Ethereum (ETH):** 0x76C936F9366Fad39769CA5285b0Af1d975adacB8\
πŸͺ™ **Binance Coin (BNB):** bnb1xnn6gg63lr2dgufngfr0lkq39kz8qltjt2v2g6\
πŸ’  **Litecoin (LTC):** LMGrhx8Jsx73h1pWY9FE8GB46nBytjvz8g

<div align="center">

### Show some πŸ’œ by starring some of the [repositories](https://github.com/heyValdemar?tab=repositories)!

![octocat](https://user-images.githubusercontent.com/10498744/210113490-e2fad07f-4488-4da8-a656-b9abbdd8cb26.gif)

</div>

![footer](https://user-images.githubusercontent.com/10498744/210157572-1fca0242-8af2-46a6-bfa3-666ffd40ebde.svg)
Loading

0 comments on commit 9b97c9a

Please sign in to comment.