SQL storage for CertMagic/Caddy TLS data.
Currently supports PostgreSQL but it'd be pretty easy to support other RDBs like SQLite and MySQL. Please make a pull-request if you add support for them and I'll gladly merge.
Now with support for Caddyfile and environment configuration.
- Valid values for sslmode are: disable, require, verify-ca, verify-full
{
"storage": {
"module": "postgres",
"connection_string": "postgres://user:password@localhost:5432/postgres?sslmode=disable",
"disable_ddl": false
},
"app": {
...
}
}
{
"storage": {
"module": "postgres",
"dbname": "certmagictest",
"host": "localhost",
"password": "postgres",
"port": "5432",
"sslmode": "disable",
"user": "postgres",
"disable_ddl": false
},
"app": {
...
}
}
With Caddyfile:
# Global Config
{
storage postgres {
connection_string postgres://user:password@localhost:5432/postgres?sslmode=disable
disable_ddl false
}
}
or
{
storage postgres {
dbname certmagictest
host localhost
password postgres
port 5432
sslmode disable
user postgres
disable_ddl false
}
}
From Environment:
POSTGRES_CONN_STRING
POSTGRES_DISABLE_DDL
or
POSTGRES_HOST
POSTGRES_PORT
POSTGRES_USER
POSTGRES_PASSWORD
POSTGRES_DBNAME
POSTGRES_SSLMODE
POSTGRES_DISABLE_DDL
Configuring with labels for usage with Swarm and docker-proxy (https://github.com/lucaslorentz/caddy-docker-proxy):
deploy:
labels:
# Set Storage definitions
caddy_0.storage: postgres
caddy_0.storage.connection_string: postgres://user:password@localhost:5432/postgres?sslmode=disable
caddy_0.storage.disable_ddl: false
or
deploy:
labels:
# Set Storage definitions
caddy_0.storage: postgres
caddy_0.storage.host: localhost
caddy_0.storage.port: "5432"
caddy_0.storage.user: postgres
caddy_0.storage.password: postgres
caddy_0.storage.dbname: certmagictest
caddy_0.storage.sslmode: disable
caddy_0.storage.disable_ddl: false
# Version to build
ARG CADDY_VERSION="2.6.2"
FROM caddy:${CADDY_VERSION}-builder AS builder
RUN xcaddy build \
--with github.com/yroc92/postgres-storage
FROM caddy:${CADDY_VERSION}-alpine
COPY --from=builder /usr/bin/caddy /usr/bin/caddy
# Version to build
ARG CADDY_VERSION="2.6.2"
FROM caddy:${CADDY_VERSION}-builder AS builder
RUN xcaddy build \
--with github.com/yroc92/postgres-storage \
--with github.com/lucaslorentz/caddy-docker-proxy/v2 \
--with github.com/caddy-dns/cloudflare
FROM caddy:${CADDY_VERSION}-alpine
COPY --from=builder /usr/bin/caddy /usr/bin/caddy
CMD ["caddy", "docker-proxy"]
MIT