# Morlana Pages Free Subdomain Service

## Overview
This repository provides a free subdomain service for the `morlana.page` domain, similar to `js.org`. Users can request a subdomain by forking this repository, adding their domain entry to `domains.yaml`, and submitting a pull request.

## How It Works
1. Fork this repository.
2. Add your subdomain entry to `domains.yaml`, ensuring it is in alphabetical order.
3. Submit a pull request.
4. Once the PR is approved and merged, an automated workflow updates the DNS records via the Cloudflare API.

## Subdomain Requirements
- Only **CNAME** records are allowed.
- The Cloudflare proxy is **enabled by default**, but can be disabled per subdomain.
- Reserved domains cannot be registered (e.g., `www.morlana.page`).

## How to Request a Subdomain
### 1. Edit `domains.yaml`
Add your subdomain under the `subdomains` section:

```yaml
subdomains:
  - name: "your-subdomain"
    target: "your-site.example.com"
    proxy: true  # Set to false if you want to disable the Cloudflare proxy
    note: "Optional description"
```

### 2. Submit a Pull Request
- Ensure that your subdomain entry is in **alphabetical order**.
- Verify that your CNAME target is correct.
- Create a pull request with your changes.

## Reserved Domains
Some subdomains are **reserved** and cannot be registered. The list includes:
- `www.morlana.page`
- `api.morlana.page`
- `mail.morlana.page`
- Domains matching specific patterns (e.g., `admin.*`, `internal.*`).

## Automation
Once a pull request is merged, a GitHub Action will:
1. Validate the `domains.yaml` file.
2. Check for duplicate or reserved domains.
3. Update the Cloudflare DNS settings automatically.

## Setup for Maintainers
### Environment Variables
To enable Cloudflare DNS updates, set the following secrets in Gitea:
- `CLOUDFLARE_API_TOKEN`: API token with DNS write access.
- `CLOUDFLARE_ZONE_ID`: Cloudflare Zone ID for `morlana.page`.

## License
This project is open-source and licensed under the BSD-3-Clause.

