certpost 1.0.0b8__py3-none-win_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,149 @@
1
+ Metadata-Version: 2.1
2
+ Name: certpost
3
+ Version: 1.0.0b8
4
+ Summary: Let's Encrypt certificate manager with DNS-01 challenges, web admin panel, and TLS termination proxy
5
+ Home-page: https://gitlab.com/waterjuice/certpost
6
+ Author: WaterJuice
7
+ License: Unlicense
8
+ Requires-Python: >=3.7
9
+ Classifier: Programming Language :: Go
10
+ Description-Content-Type: text/markdown
11
+ # certpost
12
+
13
+ Let's Encrypt certificate manager with DNS-01 challenges, web admin panel, and TLS termination proxy. Written in Go — single static binary, no dependencies. Supports Cloudflare and Technitium DNS Server.
14
+
15
+ ## Features
16
+
17
+ - **Automatic certificate issuance** — Let's Encrypt via ACME v2, DNS-01 challenges
18
+ - **Multiple DNS providers** — Cloudflare and Technitium DNS Server, with split provider support (e.g. Cloudflare for ACME, Technitium for records)
19
+ - **Web admin panel** — manage domains, view status, download certs, view logs (protected by admin key login)
20
+ - **DNS management** — automatically creates and manages A/CNAME records for your subdomains
21
+ - **Background renewal** — proactively renews the 2 oldest certs daily, with a 30-day expiry safety net
22
+ - **Per-domain API tokens** — each domain gets its own bearer token for certificate retrieval
23
+ - **TLS termination proxy** — built-in proxy with SNI routing and automatic cert refresh
24
+ - **Certificate fetching** — download `.crt` and `.key` files via CLI or admin panel
25
+ - **Interactive setup** — `certpost-server setup` and `certpost init` wizards for easy configuration
26
+ - **Single static binary** — no runtime dependencies, no openssl required
27
+ - **Modular DNS** — protocol-based design makes it easy to add new providers
28
+
29
+ ## Requirements
30
+
31
+ - Go 1.22+ (for building)
32
+ - A supported DNS provider: Cloudflare (API token + zone ID) or Technitium DNS Server (server URL + API token)
33
+
34
+ ## Building
35
+
36
+ ```bash
37
+ make build
38
+ ```
39
+
40
+ Produces `output/certpost-server` and `output/certpost`.
41
+
42
+ Cross-compile for Linux:
43
+
44
+ ```bash
45
+ make build-linux-amd64
46
+ make build-linux-arm64
47
+ ```
48
+
49
+ ## Server
50
+
51
+ ### Initial setup
52
+
53
+ ```bash
54
+ certpost-server setup -d /path/to/data
55
+ ```
56
+
57
+ This walks you through creating a `config.json` with your DNS provider settings, base domain, and port. An admin key is generated automatically.
58
+
59
+ ### Starting the server
60
+
61
+ ```bash
62
+ certpost-server run -d /path/to/data
63
+ ```
64
+
65
+ The admin panel is available at `http://localhost:8443`. Log in with the admin key (printed on startup). From the panel you can:
66
+
67
+ - Add subdomains — enter an IP address or CNAME target, creates the DNS record via the configured provider, and issues a Let's Encrypt certificate
68
+ - View certificate status and expiry dates
69
+ - Copy or rotate per-domain API tokens
70
+ - Download certificate files
71
+ - View server logs
72
+
73
+ ### Configuration
74
+
75
+ The `config.json` in your data directory. Use a single `dns` key when one provider handles everything:
76
+
77
+ ```json
78
+ {
79
+ "base_domain": "example.com",
80
+ "admin_key": "auto-generated-admin-key",
81
+ "bind": "0.0.0.0",
82
+ "port": 8443,
83
+ "dns": {
84
+ "provider": "cloudflare",
85
+ "api_token": "your-cloudflare-api-token",
86
+ "zone_id": "your-zone-id"
87
+ }
88
+ }
89
+ ```
90
+
91
+ For split configurations, use `dns_acme` and `dns_records`:
92
+
93
+ ```json
94
+ {
95
+ "base_domain": "example.com",
96
+ "admin_key": "auto-generated-admin-key",
97
+ "bind": "0.0.0.0",
98
+ "port": 8443,
99
+ "dns_acme": {
100
+ "provider": "cloudflare",
101
+ "api_token": "your-cloudflare-api-token",
102
+ "zone_id": "your-zone-id"
103
+ },
104
+ "dns_records": {
105
+ "provider": "technitium",
106
+ "server_url": "https://dns.example.com",
107
+ "api_token": "your-technitium-api-token",
108
+ "zone": "example.com"
109
+ }
110
+ }
111
+ ```
112
+
113
+ ## Client
114
+
115
+ ### Fetch certificates
116
+
117
+ ```bash
118
+ certpost fetch -s http://certpost:8443 -t <token> -d app.example.com -o /etc/ssl/certs
119
+ ```
120
+
121
+ With automatic refresh every 24 hours:
122
+
123
+ ```bash
124
+ certpost fetch -s http://certpost:8443 -t <token> -d app.example.com --refresh 24
125
+ ```
126
+
127
+ ### TLS termination proxy
128
+
129
+ ```bash
130
+ certpost proxy -c proxy.json
131
+ ```
132
+
133
+ ### Generate a config interactively
134
+
135
+ ```bash
136
+ certpost init
137
+ ```
138
+
139
+ ## Security
140
+
141
+ - Admin panel is protected by an admin key with cookie-based auth
142
+ - Certificate API uses per-domain bearer tokens (not shared)
143
+ - Private keys are stored in JSON files — protect the data directory with filesystem permissions
144
+ - TLS proxy loads certs directly into memory via `tls.X509KeyPair` — no temp files
145
+
146
+ ## Licence
147
+
148
+ Released under the [Unlicense](https://unlicense.org/) — public domain.
149
+
@@ -0,0 +1,5 @@
1
+ certpost-1.0.0b8.data/scripts/certpost-server.exe,sha256=qNrXUXthzb-UO_sg7CEVcf94skcthymQPenpZyO23oc,6573568
2
+ certpost-1.0.0b8.data/scripts/certpost.exe,sha256=sgNMt0NaXx8UaDIs5c3l33r6wXt8IeEhZzcqDWCP9vc,6172160
3
+ certpost-1.0.0b8.dist-info/METADATA,sha256=54zjgSZxBhEyUZqltA0vCKsVx2ZNfdzuTtKCMutBTK4,4391
4
+ certpost-1.0.0b8.dist-info/WHEEL,sha256=wNZVzVl1pV29tNEH9u1e8IeMEQyIPKucDoXN7wnf9VE,85
5
+ certpost-1.0.0b8.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: bin2whl
3
+ Root-Is-Purelib: false
4
+ Tag: py3-none-win_arm64