Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/deuill/coreos-home-server
Home Server Setup with CoreOS
https://github.com/deuill/coreos-home-server
Last synced: 1 day ago
JSON representation
Home Server Setup with CoreOS
- Host: GitHub
- URL: https://github.com/deuill/coreos-home-server
- Owner: deuill
- License: mit
- Created: 2021-01-13T16:36:27.000Z (almost 4 years ago)
- Default Branch: trunk
- Last Pushed: 2024-12-18T03:04:02.000Z (10 days ago)
- Last Synced: 2024-12-19T11:09:27.392Z (9 days ago)
- Language: Dockerfile
- Size: 976 KB
- Stars: 50
- Watchers: 5
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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).## Prerequisites
Effective use of the source-files here requires that you have the following dependencies installed
on your host:- `gpg` for secret management and image validation.
- `butane` for rendering out host and service configuration.
- `qemu` for virtual host testing.All of the requirements are checked during the various Makefile invocations, and will return fatal
errors unless fulfilled. In addition to the aforementioned build-time dependencies, the build host
needs the following setup procedures performed:### Import GPG key for image validation:
This is required for validating the signatures for installation media when deploying bare-metal and
virtual hosts:```sh
curl -fL https://getfedora.org/static/fedora.gpg | gpg --import
```## 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/butane/) (*aka* Butane) files, which will typically
define host-specific configuration, and merge in additional, standard configuration; check the
[virtual host configuration](host/virtual/spec.bu) 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.bu` file to its corresponding Ignition format
via the `butane` 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 `qemu`
installed on your system. Using the virtual environment is simple:```
make deploy HOST=virtual
```This will automatically download the Fedora CoreOS image for the `VERSION` specified in the
Makefile, compile included Butane 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 `a x` key-combination to escape the virtual machine, and can use the
`a h` key-combination to get additional options related to the current virtual session.## Included 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.Check the [service documentation](service/README.md) for more information.
## 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.