pages-server/README.md
hazycora 07dc2fc395
All checks were successful
Deploy to VPS / build_site (push) Successful in 5s
Relicense to OQL
2024-04-16 16:38:49 -05:00

69 lines
2.5 KiB
Markdown

# pages.gay
A static site server for Forgejo instances.
## usage
sign into [git.gay](https://git.gay) and make a repository called "pages". place static files in the repository (index.html for the homepage!) on the default branch, and visit `https://username.pages.gay` in a browser!
you can make a page for a project by making a branch named "pages" in another repository, and putting your static files there. it can then be accessed at `https://username.pages.gay/repo`.
### custom domains
to use a custom domain, create a .domains file in your repository with the domain you'd like to use.
then, add a DNS CNAME record on your domain pointing to `[[branch.]repo.]user.pages.gay`.
for apex domains, where CNAME records don't work, just add an A record pointing to `66.94.102.77`, an AAAA record pointing to `2605:a142:2135:4519::1`, and a TXT record with the content `[[branch.]repo.]user.pages.gay`.
## selfhosting
selfhosting the pages.gay server somewhere else is simple- but _you need a separate host for this_. unlike typical web servers, where you can put them behind nginx and be fine, this server handles its own SSL in order to support custom domains.
```
git clone https://git.gay/gitgay/pages
cd pages
go build
```
configuration is done through a `.env` file:
```sh
# the PAGES_DOMAIN should be just the domain, with no leading period:
PAGES_DOMAIN=pages.gay
FORGEJO_URL=https://git.gay
# FORGEJO_USER_URL is needed for generated repository links if FORGEJO_URL is a local address inaccessible by users
FORGEJO_USER_URL=https://git.gay
PORT=80
HTTPS_PORT=443
ACME_ACCEPT_TERMS=true
ACME_EMAIL=example@example.com
# mock ACME_DIRECTORY_URL, useful for testing:
# ACME_DIRECTORY_URL=https://acme.mock.directory/
# staging LetsEncrypt:
# ACME_DIRECTORY_URL=https://acme-staging-v02.api.letsencrypt.org/directory
# actual LetsEncrypt:
ACME_DIRECTORY_URL=https://acme-v02.api.letsencrypt.org/directory
# A Cloudflare API token with Zone Edit permissions for the domain you'll be hosting this on.
# This is used for solving the ACME challenges.
CLOUDFLARE_TOKEN=abcd1234
```
## features
- [x] username.pages.gay pages
- [x] username.pages.gay/repo pages
- [x] custom domains
- [x] https support
- [x] auto-renewal of certificates
- [x] support SPAs with `_redirects` file
- [ ] markdown rendering (set back with go rewrite, TODO!)
## license
the pages.gay server is copyright (c) hazycora 2023. it's under the [OQL](https://oql.avris.it).
made with ❤️ by [besties](https://besties.house)