60 lines
1.4 KiB
Markdown
60 lines
1.4 KiB
Markdown
|
# Portable Service
|
||
|
|
||
|
To run this service as a [portable
|
||
|
service](https://systemd.io/PORTABLE_SERVICES/), you either need to build it
|
||
|
from source or fetch a premade image from my server. Then you need to activate
|
||
|
the portable service and manage it like any other systemd service.
|
||
|
|
||
|
## Getting Image
|
||
|
|
||
|
### Building From Source
|
||
|
|
||
|
To build from source, install Nix and enable flakes. Then run this command:
|
||
|
|
||
|
```
|
||
|
nix build "git+https://tulpa.dev/cadey/printerfacts.git?ref=main#portable-service"
|
||
|
```
|
||
|
|
||
|
Copy this to somewhere on your target server:
|
||
|
|
||
|
```
|
||
|
scp $(readlink ./result) target:printerfacts_0.3.1.raw
|
||
|
```
|
||
|
|
||
|
### Downloading From My Server
|
||
|
|
||
|
Visit [my portable services
|
||
|
repository](https://xena.greedo.xeserv.us/pkg/portable/) server and download the
|
||
|
most recent `printerfacts` `.raw` file. Put it somewhere on the target machine.
|
||
|
|
||
|
## Installing and Activating
|
||
|
|
||
|
If you are running Ubuntu 22.04, you will need to install `systemd-portabled`:
|
||
|
|
||
|
```
|
||
|
sudo apt -y install systemd-container
|
||
|
```
|
||
|
|
||
|
This may work on other distros, but I have only tested this on Ubuntu 22.04.
|
||
|
|
||
|
Then attach the service image:
|
||
|
|
||
|
```
|
||
|
sudo portablectl attach ./printerfacts_0.3.1.raw
|
||
|
```
|
||
|
|
||
|
And activate it like any other systemd service:
|
||
|
|
||
|
```
|
||
|
sudo systemctl enable --now printerfacts.service
|
||
|
```
|
||
|
|
||
|
And then fetch a printer fact:
|
||
|
|
||
|
```
|
||
|
$ curl http://[::1]:32042/fact
|
||
|
On average, a printer will sleep for 16 hours a day.
|
||
|
```
|
||
|
|
||
|
Or open it in your browser: http://target:32042
|