A simple Debian repository using S3
sthreepo (read ess-three-p-oh) is an extremely simple (and far FAR from
complete) Debian repository manager using AWS S3
for storage and AWS KMS for signature keys.
- Signature Keys
- Creating a Repository
- Adding Packages
- HTTPS and Authentication
- Further Help
- Copyright Notice
- License
Signature Keys
Signature keys are managed in AWS KMS, using the
pgpkms library. Read its documentation
to better understand how to create and manage those keys.
Creating a Repository
A repository can be created by simply invoking sthreepo with a bucket name,
default index and (optional) origin and label:
$ python3 -m sthreepo \
--bucket=my-repo-bucket \
--default-index=buster:main \
--origin=Juit \
--label=Juit
Adding Packages
Once the repository is created (and its state stored in S3) adding packages should be as easy as calling:
$ python3 -m sthreepo -b=my-repo-bucket ./my-package.deb
HTTPS and Authentication
As with any S3-based website, HTTPs and authentication support can be added using CloudFront.
The terraform/ directory contains a basic Terraform setup to create such an environment.
Further Help
Look at the command line help for more information:
$ ./bin/sthreepo -h
Usage: ./bin/sthreepo [options] <package.deb>
Options:
-b, --bucket=<name> The AWS bucket name of the repository.
-c, --create-index=distribution:component
Create a new index in the repository.
-d, --default-index=distribution:component
Set the default index for the repository.
-i, --index=distribution:component
Use the specified index for the new package.
-k, --key=<id> The ID, ARN, or alias of the key to use.
-l, --label=<label> Set the label for the repository.
-n, --name=<name> The name of the repository (default: "repository").
-o, --origin=<origin> Set the origin for the repository.
-v, --verbose Be more verbose.
--invalidate-cloudfront=<distribution-id>
Invalidate all CloudFront caches for the distribution
with the specified ID.
Environment Variables:
STHREEPO_BUCKET The AWS bucket name of the repository.
STHREEPO_KEY The default ID, ARN or alias of the KMS key to use.
STHREEPO_CLOUDFRONT_ID The CloudFront Distribution ID for invalidating caches.
Release files for sthreepo 0.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sthreepo-0.0.3.tar.gz | 20.3 kB | Details |
Release files / sthreepo-0.0.3.tar.gz
| Download URL | sthreepo-0.0.3.tar.gz |
|---|---|
| Size | 20.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
844f2823b3bcd05bda7231403ed6fd06f803f7df7be3a6f40c1d2e90bd094b15
|
|
BLAKE2b-256 checksum How to use checksums |
96bee12a0cc8d583add9a6630448652f7089b544414df5fd48be75aa96bf11ff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.8.0 colorama/0.4.4 importlib-metadata/4.6.4 keyring/23.5.0 pkginfo/1.8.2 readme-renderer/34.0 requests-toolbelt/0.9.1 requests/2.25.1 rfc3986/1.5.0 tqdm/4.57.0 urllib3/1.26.5 CPython/3.10.4
|