This repository contains automation code to set up a rollyourown host server.
This project uses Ansible to deploy the software and configuration needed for a rollyourown host server.
A detailed description of how to use a rollyourown project to deploy and maintain an open source solution can be found on the rollyourown website.
Before deploying a host server, a rollyourown control node must be set up first. A host server is controlled by a control node via a secure wireguard tunnel.
In summary, after setting up a control node then deploy a host server as follows:
-
Log in to the control node as the non-root user, enter the
ryo-projects
directory and clone the host server repository to your control node from Codeberg or GitHub:git clone https://codeberg.org/rollyourown-xyz/ryo-host
or
git clone https://github.com/rollyourown-xyz/ryo-host
-
Choose a name (e.g. "host1") for the host server, enter the
ryo-host
directory and copy the fileconfiguration/configuration_TEMPLATE.yml
to a new fileconfiguration/configuration_<HOST_NAME>.yml
, replacing <HOST_NAME> with the name chosen:cd ryo-host cp configuration/configuration_TEMPLATE.yml configuration/configuration_<HOST_NAME>.yml
NOTE: The host name should be a combination of ONLY upper and lower case letters and numbers, with no spaces, dashes or other symbols
-
Edit the new file
configuration_<HOST_NAME>.yml
and add the host server's public (and if applicable private) IP address, and the root username and password. Also choose a non-root username and password for the host server. If you aren’t familiar with a different Linux editor, use nano to edit the file with:nano configuration/configuration_<HOST_NAME>.yml
-
Copy the file
configuration/inventory_TEMPLATE
to a new fileconfiguration/inventory_<HOST_NAME>
, replacing <HOST_NAME> with the name chosen above:cp configuration/inventory_TEMPLATE configuration/inventory_<HOST_NAME>
-
Edit the new file
inventory_<HOST_NAME>
and add the host server's IPv4 address:nano configuration/inventory_<HOST_NAME>
-
If this is not the first host server configured to be managed from the control node, check additional settings in
configuration_<HOST_NAME>.yml
andinventory_<HOST_NAME>
and change as described in the comments in those files -
Run the host server setup automation script
host-setup.sh
, passing the name of the host chosen above via the flag-n
:./host-setup.sh -n <HOST_NAME>
After setting up the host server, you are now ready to deploy a rollyourown project on the server.
We would be delighted if you would like to contribute to rollyourown and there are a number of ways you can collaborate on this project:
- Raising security-related issues
- Contributing bug reports, feature requests and ideas
- Improving the project - e.g. to provide fixes or enhancements
You may also like to contribute to the wider rollyourown project by, for example:
- Contributing a new project or module
- Contributing to the rollyourown website content or design
- Maintaining a rollyourown repository
Issues for this project can be submitted on Codeberg (preferred) or GitHub:
If you have found a security vulnerability in any rollyourown service or any of the rollyourown projects, modules or other repositories, please read our security disclosure policy and report this via our security vulnerability report form.
For public contributions, we maintain mirror repositories of this project on Codeberg and GitHub:
Our preferred collaboration space is Codeberg:
The primary repository for this project is hosted on our own Git repository server at:
Repositories on our own Git server are accessible only to members of our organisation.
For information on copyright, licences and trademarks, see https://rollyourown.xyz/about/copyright_licenses_trademarks/.