diff --git a/README.md b/README.md index 1e76d1b..48ce3db 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,7 @@ These tools and service are necessary to get started: ### Setup / Heat-Up / Cool-Down -For the initial setup and maintenance of the forge you can use the `forge.sh` script: +For the initial setup and maintenance of the forge you can use the [forge.sh](forge.sh) script: @@ -90,3 +90,5 @@ For the initial setup and maintenance of the forge you can use the `forge.sh` sc | `./forge.sh cool-down` | Stop the forge | + +Details about what the setup does can be found [here](./docs/setup.md). diff --git a/docs/index.md b/docs/index.md index d458820..d06b925 100644 --- a/docs/index.md +++ b/docs/index.md @@ -32,7 +32,7 @@ etc. is stored there. You can inspect the volume with: ``` Under the `"Mountpoint:"` you find the actual path on your file system. I would recommend you -symlink this folder to a path more rememberable. For example you can do: +symlink this folder to a path more rememberable. For example you can do the following: ```sh FORGE_POD_DATA_DIR="$(podman volume inspect ublue-os_forge-data | jq -r '.[0].Mountpoint')" diff --git a/docs/setup.md b/docs/setup.md new file mode 100644 index 0000000..48cdd05 --- /dev/null +++ b/docs/setup.md @@ -0,0 +1,43 @@ +# Forge setup + +The initial setup and maintenance of the forge you can use the `forge.sh` script: + + + +| Command | Description | +| ---------------------- | ----------------------------------------------------------- | +| `./forge.sh setup` | Setup the forge for the first time or update existing setup | +| `./forge.sh heat-up` | Start the forge | +| `./forge.sh cool-down` | Stop the forge | + + + +## What happens during setup + +Just in case you haven't have a look at the [forge.sh](forge.sh) script. The following +things happen during the setup: + +1. The [pre-requisites](../README.md#pre-requisites) are checked + +2. You will be asked for your user credentials + This is not to spy on you. We need them to execute the [configure_host.yml](../anvil/ansible/playbooks/configure_host.yml). + It will configure the necessary settings so you don't have to do that manually. + See step 7. + +3. A podman network `ublue-os_forge` is created. All containers from this setup will be + attached to it in the next step + +4. All containers are built and spun up according to the [forge-pod.yml](../forge-pod.yml) + specification. + +5. The forge SSH key is added to your `~/.ssh/authorized_keys` file. + The root certificate and key are created during container build mentioned in the + previous step. + +6. The forge root certificate is copied to the [data](index.md#configuration) directory. + +7. The [configure_host.yml](../anvil/ansible/playbooks/configure_host.yml) playbook mentioned + in step 2 is executed. + This will created the necessary host entries in `/etc/hosts`, copy the forge root certificate + to `/etc/pki/ca-trust/source/anchors/`, `update-ca-trust` and create the example configuration + in the [data](index.md#configuration) directory.