# ayakael.net Upstream: https://ayakael.net/forge/ayakael.net/actions ![Build Status](https://ayakael.net/forge/ayakael.net/badges/workflows/pages.yaml/badge.svg) ![Push Status](https://ayakael.net/forge/ayakael.net/badges/workflows/deploy.yaml/badge.svg) ## Forgejo Actions This project's static Pages are built by Forgejo Actions, following the steps defined in [`.forgejo/workflows/pages.yaml`](.forgejo/workflows/pages.yaml). That builds this website using ikiwiki, and pushes the build artifacts to the `public` branch. The `public` branch has its own workflow following steps defined in [`forgejo/workflows/deploy.yaml`](https://ayakael.net/forge/ayakael.net/src/branch/public/.forgejo/workflows/deploy.yaml) that uploads the artifacts to a remote HTTP server for deployment in production. This workflow is automatically updated from `main` so that `public` should never be manually modified. The deployment is done by a simple remote git push via SSH to a non-bare repo where `git config receive.denyCurrentBranch` is set as `updateInstead`. This allows this repo to be checked out as `public`, allowing it to be a root for your favorite HTTP server. The following secrets are expected to be set for operation: * PAGES_PRIVKEY: SSH private key that is used to push to the HTTP server's git repo * PAGES_TOKEN: Forgejo application token used to push to `public` branch. The following variables are expected to be set for operation: * PAGES_TARGET: SSH target for HTTP server's git repo, following this format: user@example.net:/path/to/http/repo ## Building locally To work locally with this project, you'll have to follow the steps below: 1. Fork, clone or download this project 1. Install ikiwiki: * [mac][] * [linux][] * [source][] 1. Generate the website: `ikiwiki --setup ikiwiki.setup` 1. Start http-server: `./test-server.sh` 1. Preview your project: open 127.0.0.1:8080 in your browser Read more at ikiwiki's [documentation][]. ## Contributing 1. Fork the main ayakael.net repo. 2. Checkout the forked repository. - `git clone ssh://git@ayakael.net/$USER/ayakael.net` - `cd ayakael.net` 3. Make your changes. 4. Do local build. - `ikiwiki --setup ikiwiki.setup` 5. Fix any errors that come up and rebuild until it works locally. 6. Commit the changes to the git repo in a git branch - `git checkout -b ` - `git add` changes - `git commit -m 'content/index: descriptive description'` - `git push` 7. Create a merge request with your changes by following link in server response. 8. Once the tests in the merge-request pass, and reviewers are happy, your changes will be merged. [ikiwiki]: https://ikiwiki.info/ [source]: https://ikiwiki.info/install/ [linux]: https://ikiwiki.info/setup/ [mac]: https://ikiwiki.info/tips/ikiwiki_on_mac_os_x/ [documentation]: https://ikiwiki.info/