69 lines
2.5 KiB
Markdown
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)
|