Technical
Deploy
To deploy Domain to a production server and have it run as a systemd daemon:
Install Kitten.
Run:
kitten deploy https://codeberg.org/project-catalyst/app.git
If you donāt want to set up your own server and deploy Catalyst manually, you can also use our Catalyst instance to set up your own in seconds at small-web.org.
Install (development)
On your development machine:
- Install Kitten.
- Clone the Catalyst git repository.
Run at localhost
Catalyst is a Kitten app. There is no build stage.
From the Catalyst folder, simply run:
kitten
- Main page: https://localhost
- Settings Panel: https://localhost/settings
For the Settings Panel password please see terminal output on first run. Please store this secret in your password manager.
Run at a domain
Running Catalyst at localhost will give you limited functionality as you will not be able to set up new servers. This is because the server thatās being set up needs to communicate with your Catalyst server and it cannot do that unless it can reach it at a domain name or an IP address.
The easiest way to set this up is to use a service like LocalXpose to expose your development machine to the world at a domain (e.g., at dev.my-domain.org).
In this case, you would run the loclx command in one Terminal instance. e.g.,
loclx tunnel http --reserved-domain dev.my-domain.org --https-to localhost:443 --to localhost:80 --region eu
And, in another, run Kitten by specifying the same domain:
kitten --domain dev.my-domain.org
Configure
Once you sign up for accounts with the supported service providers and Domain is running, you can configure your account using the Admin Panel.
Troubleshooting VPS
The VPS setup is handled via cloud-init. To debug any issues you might experience with the server setup, the following commands (executed on the server) should help:
cloud-init analyze dump
systemctl status cloud-final.service
cat /var/log/cloud-init-output.log
Cryptographic properties
Please see the cryptographic properties section in the Kitten Reference documentation.
Project conventions
HTML
idattributes use kebap-case (all lowercase). Justification:/because-when-you-use/#camelCaseInURLsItsInconsistentAndHardToTypeInHTML
nameattributes use camelCase. Justification: can be used on the server by JavaScript, e.g., in POST requests (consistency).HTML
classattributes use camelCase, with component names in PascalCase. Justification: consistency with JavaScript; ability to differentiate components (what BEM would call āblocksā, even though we donāt use BEM, we do have components).Single quotes for HTML attributes are preferred. (By all means, use double quotes if you need to include single quotes in the value.)