Home Server Setup with CoreOS
Go to file
Alex Palaistras 83fa08d4b7 Don't publish ports for Radicale
These will, in general, be proxied into by the HTTP ingress, and do not
need to be exposed on the host itself.
2021-04-03 16:16:11 +01:00
config Don't publish ports for Radicale 2021-04-03 16:16:11 +01:00
host More fixes for Nginx-backed services 2021-03-28 14:00:17 +01:00
.gitignore First public release for CoreOS Home Server 2021-03-20 16:32:42 +00:00
LICENSE First public release for CoreOS Home Server 2021-03-20 16:32:42 +00:00
Makefile More fixes for Nginx-backed services 2021-03-28 14:00:17 +01:00
README.md First public release for CoreOS Home Server 2021-03-20 16:32:42 +00:00

CoreOS Home Server Setup

This repository contains support files for deploying a simple server setup based on Fedora CoreOS, and mainly based around systemd and Podman.

Setup and Deployment

Initial server deployment is managed by the included Makefile, which also allows for testing against a virtualized environment. Configuration for virtual and physical servers is managed by Fedora CoreOS configuration files, which will typically define host-specific configuration, and merge in additional, standard configuration; check the virtual host configuration for an example.

You can prepare host configuration for consumption by using the deploy target for the included Makefile, e.g.:

make deploy HOST=example

This will compile the host-specific host/example/spec.fcc file to its corresponding Ignition format via the fcct utility (which is expected to be installed on the system), and serve the final result over HTTP on the local network. This, of course, assumes that you'll be installing on bare metal on a system on your local network -- support for additional targets may be added in the future.

Testing

A virtual host is included for development and testing; using this requires that you have virsh and virt-install installed on your system. Using the virtual environment is simple:

make deploy-virtual

This will automatically download the Fedora CoreOS image for the VERSION specified in the Makefile, compile included FCCT files, and start a virtual machine on the terminal running the make command. If you want to see the various command run under the hood, add the VERBOSE=1 parameter to the make invocation.

By default, you can use the <Ctrl>] key-combination to escape the virtual machine, and can use the make destroy-virtual command to drop any resources initialized for the virtual host.

Services

In addition to host-specific configuration, servers will typically include a number of services, managed by systemd and podman. These are intended to be deployed via Ignition on server setup, but also be managed throughout the server's life-cycle.

The mechanisms for building and deploying services are simple and fairly consistent. Firstly, Podman containers and systemd services are built and enabled using the included container-build systemd service. This will read files from /etc/container-services (copied onto the server during deployment) and build container images and systemd service definitions as needed.

License

All code in this repository is covered by the terms of the MIT License, the full text of which can be found in the LICENSE file.