Tool for provisioning private game servers on demand
Project description
smpsave - Dynamic Provisioner for Private Game Servers
Save money hosting private game servers on demand.
- Start and stop your game server on demand through Discord, let your friends do the same.
- Back up server files between restarts.
- Automatically shut off the server to save on costs.
See documentation for more info.
Installing
Install as a standalone tool with uv:
uv tool install smpsave
This puts smpsave-cli on your PATH in its own isolated environment. You can also run it
without installing:
uvx --from smpsave smpsave-cli --help
Or install via pip:
pip install smpsave
To install from a checkout of this repository:
uv tool install .
Developing
Create the virtualenv and install all dependencies (including dev and docs tools):
uv sync
Run the CLI from the checkout:
uv run smpsave-cli --help
Build the docs:
uv run sphinx-build docs docs/_build
Building
Build the sdist and wheel into dist/:
uv build
Releasing
- Bump the version:
uv version --bump patch # or minor, major
- Commit
pyproject.tomlanduv.lock, then push. - Publish a GitHub release with the tag
v<version>(e.g.v0.2.3). This triggers the PyPI deploy workflow.
Elevator pitch
Want a dedicated server powerful enough for your favorite game, but don't want to pay a cloud host
nearly $50 per month? Use smpsave to only pay for what you need.
Let's say you play on your private game server 10 hours a week.
Billing before using smpsave:
- Linode 8GB shared CPU, running 24/7 for all ~720 hours in a month: $48
- With only ~40 hours of actual play, ~94% of that cost is wasted money.
Billing after using smpsave:
- Linode 8GB shared CPU, running 10 hours a week or ~40 hours a month: $2.88
While this could be achieved by having someone manually provision the server as needed, that individual becomes a single point of failure for keeping the game running. By exposing the server controls through Discord, anyone in the group can spin up the server when they want to play.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file smpsave-0.2.2.tar.gz.
File metadata
- Download URL: smpsave-0.2.2.tar.gz
- Upload date:
- Size: 53.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d8a27c377326a63b2abfefd52adfc277b6d485d8fa606ccf6dac745f4e5daee
|
|
| MD5 |
8a16c1be0347c65ca48319b63a64515b
|
|
| BLAKE2b-256 |
9b6b6239234086f2f8eea1e9a668b4e22163fc0ef373ce08b9ad8b97a431d373
|
Provenance
The following attestation bundles were made for smpsave-0.2.2.tar.gz:
Publisher:
python-publish.yml on tbeeck/smpsave
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
smpsave-0.2.2.tar.gz -
Subject digest:
4d8a27c377326a63b2abfefd52adfc277b6d485d8fa606ccf6dac745f4e5daee - Sigstore transparency entry: 2256806285
- Sigstore integration time:
-
Permalink:
tbeeck/smpsave@eb94dbfaee28277d080365f8c2c5f32366d4ce59 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/tbeeck
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@eb94dbfaee28277d080365f8c2c5f32366d4ce59 -
Trigger Event:
release
-
Statement type:
File details
Details for the file smpsave-0.2.2-py3-none-any.whl.
File metadata
- Download URL: smpsave-0.2.2-py3-none-any.whl
- Upload date:
- Size: 44.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2af47c9ce8371dc992177c51a19157c9e8abf5c003c7a48edba475bdc79a40c3
|
|
| MD5 |
47da16fbb5259f17f66359b47423abfb
|
|
| BLAKE2b-256 |
0be82ad45cbff3974e450462c824872543697287aea68498b869d8268cd97392
|
Provenance
The following attestation bundles were made for smpsave-0.2.2-py3-none-any.whl:
Publisher:
python-publish.yml on tbeeck/smpsave
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
smpsave-0.2.2-py3-none-any.whl -
Subject digest:
2af47c9ce8371dc992177c51a19157c9e8abf5c003c7a48edba475bdc79a40c3 - Sigstore transparency entry: 2256806298
- Sigstore integration time:
-
Permalink:
tbeeck/smpsave@eb94dbfaee28277d080365f8c2c5f32366d4ce59 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/tbeeck
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@eb94dbfaee28277d080365f8c2c5f32366d4ce59 -
Trigger Event:
release
-
Statement type: