# Setting Up HTTPS for Gitea with Traefik

This guide explains how to configure Gitea with proper HTTPS using Traefik as a reverse proxy with automatic certificate management via Let's Encrypt.

## Prerequisites

- A domain name pointing to your server (currently using `bee8333.ddns.net`)
- Ports 80 and 443 open and forwarded to your server
- Docker and Docker Compose installed

## Configuration Steps

1. **Update email address in docker-compose.yml**

   Edit the `docker-compose.yml` file and replace `your-email@example.com` with your actual email address. Let's Encrypt will use this for certificate expiration notifications:

   ```yaml
   --certificatesresolvers.letsencrypt.acme.email=your-email@example.com
   ```

2. **Start the services**

   ```bash
   docker-compose down
   docker-compose up -d
   ```

3. **Check the status**

   ```bash
   docker-compose ps
   ```

   All services should be running without errors.

## How It Works

- **Traefik** acts as a reverse proxy, handling incoming HTTP/HTTPS traffic
- Automatically redirects HTTP to HTTPS
- Obtains and renews SSL certificates from Let's Encrypt
- Routes requests to the appropriate containers based on domain name

## Troubleshooting

If you encounter issues:

1. **Check Traefik logs**

   ```bash
   docker-compose logs traefik
   ```

2. **Check Gitea logs**

   ```bash
   docker-compose logs server
   ```

3. **Verify DNS settings**

   Make sure your domain (`bee8333.ddns.net`) correctly points to your server's IP address.

4. **Check firewall settings**

   Ensure ports 80 and 443 are open and properly forwarded to your server.

## Git Client Configuration

When pushing to your Gitea repository from your local machine, you'll now be using HTTPS with a valid certificate. Use the following URL format:

```
https://bee8333.ddns.net/username/repository.git
```

## SSH Access

SSH access is still available on port 222. Use the following format in your SSH config or Git command:

```
ssh://git@bee8333.ddns.net:222/username/repository.git
``` 