Install Guide

SPORK ACME ships as a single static binary. No package manager, no runtime dependencies, no extraction tools required.

System Requirements

RequirementMinimum
Architecturex86_64 (amd64)
Operating SystemLinux (any distribution)
RAM256 MB
Disk100 MB free
Runtime DependenciesNone (statically linked, musl)
Broad compatibility: The binary is statically linked against musl libc. It runs on Ubuntu 18.04+, Rocky/RHEL 8+, Debian 10+, Amazon Linux 2+, Alpine 3.12+, SUSE 15+, and any other x86_64 Linux distribution with a 4.x+ kernel.

Download

Download the binary from the release server:

curl -fSL -o spork-acme https://rayketcham.com/CRLs/sp0rk/static/spork-acme-0.5.2-linux-x86_64

Install

Make the binary executable and run the setup wizard:

# Make executable
chmod +x spork-acme

# Move to a permanent location
sudo mv spork-acme /usr/local/bin/

# Run the setup wizard (auto-detects first run)
sudo spork-acme

The interactive setup wizard will guide you through:

  1. Choosing a state directory (default: /opt/spork-acme/)
  2. Selecting a CA hierarchy (2-tier or 3-tier, subordinate to Windows CA, or PFX import)
  3. Choosing signing algorithms (classical or post-quantum)
  4. Setting the admin password for the /admin dashboard
  5. Configuring the listening port (default: 6446)
  6. Creating a systemd service file
Re-running the wizard: To re-initialize or reconfigure, run sudo spork-acme -s /opt/spork-acme with the state directory path.

Verify

After the wizard completes and the service starts, verify the server is running:

# Check the ACME directory endpoint
curl -k https://localhost:6446/acme/directory

# Check the health endpoint
curl -k https://localhost:6446/health

# Check the version
spork-acme --version

The ACME directory response should return a JSON object with endpoint URLs. The health endpoint returns server status in JSON format.

Next steps: See the ACME Server Quick Start for certbot setup, domain policy configuration, and admin dashboard walkthrough.

Systemd Service

The setup wizard can create a systemd service file automatically. If you need to create one manually:

[Unit]
Description=SPORK ACME Server
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/spork-acme -s /opt/spork-acme --auto-validate
Restart=on-failure
RestartSec=5
ProtectSystem=full
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target
# Enable and start the service
sudo systemctl enable spork-acme.service
sudo systemctl start spork-acme.service

# Check status
sudo systemctl status spork-acme.service
Important: Use ProtectSystem=full, not strict. The strict setting makes the filesystem read-only and will wipe the state directory on service restart. See the ACME Server Quick Start for detailed systemd configuration.

Uninstall

To completely remove SPORK ACME from your system:

Stop and Remove the Service

# Stop and disable the service
sudo systemctl stop spork-acme.service
sudo systemctl disable spork-acme.service

# Remove the service file
sudo rm -f /etc/systemd/system/spork-acme.service
sudo systemctl daemon-reload

Remove the Binary

sudo rm -f /usr/local/bin/spork-acme

Remove the State Directory

Warning: Removing the state directory deletes all CA keys, issued certificates, the SQLite database, and configuration. Back up critical data before proceeding. This action is irreversible.
sudo rm -rf /opt/spork-acme/