feat: add vault
This commit is contained in:
parent
27445db734
commit
48b53a013d
27
vault/config/.pg.local.json
Normal file
27
vault/config/.pg.local.json
Normal file
@ -0,0 +1,27 @@
|
||||
{
|
||||
"ui": true,
|
||||
"storage": {
|
||||
"file": {
|
||||
"connection_url": "postgres://postgres:pass@postgresql:5432/vault?sslmode=disable",
|
||||
"table": "vault_kv_store",
|
||||
"max_idle_connections": 2,
|
||||
"max_parallel": "4",
|
||||
"ha_enabled": true,
|
||||
"ha_table": "vault_ha_locks"
|
||||
}
|
||||
},
|
||||
"listener": {
|
||||
"tcp": {
|
||||
"address": "0.0.0.0:8200",
|
||||
"tls_disable": 1
|
||||
}
|
||||
},
|
||||
"backend": {
|
||||
"file": {
|
||||
"path": "/vault/file"
|
||||
}
|
||||
},
|
||||
"log_level": "Debug",
|
||||
"default_lease_ttl": "168h",
|
||||
"max_lease_ttl": "720h"
|
||||
}
|
22
vault/config/local.json
Normal file
22
vault/config/local.json
Normal file
@ -0,0 +1,22 @@
|
||||
{
|
||||
"ui": true,
|
||||
"storage": {
|
||||
"file": {
|
||||
"path": "/vault/file"
|
||||
}
|
||||
},
|
||||
"listener": {
|
||||
"tcp": {
|
||||
"address": "0.0.0.0:8200",
|
||||
"tls_disable": 1
|
||||
}
|
||||
},
|
||||
"backend": {
|
||||
"file": {
|
||||
"path": "/vault/file"
|
||||
}
|
||||
},
|
||||
"log_level": "Debug",
|
||||
"default_lease_ttl": "168h",
|
||||
"max_lease_ttl": "720h"
|
||||
}
|
17
vault/db.sql
Normal file
17
vault/db.sql
Normal file
@ -0,0 +1,17 @@
|
||||
CREATE TABLE vault_kv_store (
|
||||
parent_path TEXT COLLATE "C" NOT NULL,
|
||||
path TEXT COLLATE "C",
|
||||
key TEXT COLLATE "C",
|
||||
value BYTEA,
|
||||
CONSTRAINT pkey PRIMARY KEY (path, key)
|
||||
);
|
||||
|
||||
CREATE INDEX parent_path_idx ON vault_kv_store (parent_path);
|
||||
|
||||
CREATE TABLE vault_ha_locks (
|
||||
ha_key TEXT COLLATE "C" NOT NULL,
|
||||
ha_identity TEXT COLLATE "C" NOT NULL,
|
||||
ha_value TEXT COLLATE "C",
|
||||
valid_until TIMESTAMP WITH TIME ZONE NOT NULL,
|
||||
CONSTRAINT ha_key PRIMARY KEY (ha_key)
|
||||
);
|
29
vault/docker-compose.yml
Normal file
29
vault/docker-compose.yml
Normal file
@ -0,0 +1,29 @@
|
||||
version: "3.9"
|
||||
services:
|
||||
vault:
|
||||
image: vault:latest
|
||||
container_name: vault
|
||||
restart: always
|
||||
networks:
|
||||
- traefik
|
||||
volumes:
|
||||
- ./data/file:/vault/file
|
||||
- ./data/config:/vault/config
|
||||
- ./data/logs:/vault/logs
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.vault.rule=Host(`vault.esin.io`)"
|
||||
- "traefik.http.routers.vault.entrypoints=websecure"
|
||||
- "traefik.http.routers.vault.tls=true"
|
||||
- "traefik.http.routers.vault.middlewares=vault-mw"
|
||||
- "traefik.http.middlewares.vault-mw.compress=true"
|
||||
- "traefik.http.middlewares.vault-mw.compress.excludedcontenttypes=text/event-stream"
|
||||
- "traefik.http.services.vault.loadbalancer.server.port=8200"
|
||||
cap_add:
|
||||
- IPC_LOCK
|
||||
environment:
|
||||
- VAULT_ADDR=https://vault.esin.io:8200
|
||||
command: vault server -config=/vault/config/local.json
|
||||
networks:
|
||||
traefik:
|
||||
external: true
|
Loading…
x
Reference in New Issue
Block a user