coreos-home-server/README.md

58 lines
2.7 KiB
Markdown
Raw Normal View History

# CoreOS Home Server Setup
This repository contains support files for deploying a simple server setup based on Fedora CoreOS,
and mainly based around [systemd](https://systemd.io) and [Podman](https://podman.io).
## 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](https://coreos.github.io/fcct/) files, which will typically define
host-specific configuration, and merge in additional, standard configuration; check the [virtual
host configuration](host/virtual/spec.fcc) 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](https://docs.fedoraproject.org/en-US/fedora-coreos/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.