Compare commits
3 commits
8103be3c56
...
aa526dd3f5
| Author | SHA1 | Date | |
|---|---|---|---|
| aa526dd3f5 | |||
| 40d559a989 | |||
| 43448cd80b |
7 changed files with 152 additions and 0 deletions
13
.env-dist
Normal file
13
.env-dist
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
POSTGRES_APP_HOST=localhost
|
||||||
|
POSTGRES_APP_USER=app
|
||||||
|
POSTGRES_APP_PASSWORD=app123
|
||||||
|
POSTGRES_APP_DB=app_db
|
||||||
|
POSTGRES_APP_PORT=5432
|
||||||
|
|
||||||
|
POSTGRES_DW_HOST=localhost
|
||||||
|
POSTGRES_DW_USER=dw
|
||||||
|
POSTGRES_DW_PASSWORD=dw123
|
||||||
|
POSTGRES_DW_DB=dw_db
|
||||||
|
POSTGRES_DW_PORT=5444
|
||||||
|
|
||||||
|
|
||||||
1
.envrc
Normal file
1
.envrc
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
dotenv
|
||||||
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
.env
|
||||||
16
Makefile
Normal file
16
Makefile
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
APP_DB_VOLUME=app-db-data
|
||||||
|
DW_DB_VOLUME=dw-db-data
|
||||||
|
COMPOSE_FILE=docker-compose.yml
|
||||||
|
|
||||||
|
.PHONY: start stop reset
|
||||||
|
|
||||||
|
start:
|
||||||
|
docker compose -f $(COMPOSE_FILE) up -d
|
||||||
|
|
||||||
|
stop:
|
||||||
|
docker compose -f $(COMPOSE_FILE) down
|
||||||
|
|
||||||
|
reset: stop
|
||||||
|
@echo "Removing volumes..."
|
||||||
|
docker volume rm -f $(APP_DB_VOLUME) $(DW_DB_VOLUME)
|
||||||
|
@echo "Volumes removed. You can now start fresh with 'make start'"
|
||||||
30
docker-compose.yml
Normal file
30
docker-compose.yml
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
services:
|
||||||
|
app-db:
|
||||||
|
image: postgres:17
|
||||||
|
container_name: app-db
|
||||||
|
environment:
|
||||||
|
POSTGRES_USER: ${POSTGRES_APP_USER}
|
||||||
|
POSTGRES_PASSWORD: ${POSTGRES_APP_PASSWORD}
|
||||||
|
POSTGRES_DB: ${POSTGRES_APP_DB}
|
||||||
|
ports:
|
||||||
|
- "${POSTGRES_APP_PORT}:5432"
|
||||||
|
volumes:
|
||||||
|
- app-db-data:/var/lib/postgresql/data
|
||||||
|
|
||||||
|
dw-db:
|
||||||
|
image: postgres:17
|
||||||
|
container_name: dw-db
|
||||||
|
environment:
|
||||||
|
POSTGRES_USER: ${POSTGRES_DW_USER}
|
||||||
|
POSTGRES_PASSWORD: ${POSTGRES_DW_PASSWORD}
|
||||||
|
POSTGRES_DB: ${POSTGRES_DW_DB}
|
||||||
|
ports:
|
||||||
|
- "${POSTGRES_DW_PORT}:5432"
|
||||||
|
volumes:
|
||||||
|
- dw-db-data:/var/lib/postgresql/data
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
app-db-data:
|
||||||
|
dw-db-data:
|
||||||
61
flake.lock
generated
Normal file
61
flake.lock
generated
Normal file
|
|
@ -0,0 +1,61 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731533236,
|
||||||
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1735563628,
|
||||||
|
"narHash": "sha256-OnSAY7XDSx7CtDoqNh8jwVwh4xNL/2HaJxGjryLWzX8=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "b134951a4c9f3c995fd7be05f3243f8ecd65d798",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-24.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
30
flake.nix
Normal file
30
flake.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
{
|
||||||
|
description = "Rust dev env for Meltano toy project";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05";
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { self, nixpkgs, flake-utils }:
|
||||||
|
flake-utils.lib.eachDefaultSystem (system:
|
||||||
|
let
|
||||||
|
pkgs = import nixpkgs { inherit system; };
|
||||||
|
in {
|
||||||
|
devShells.default = pkgs.mkShell {
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
rustup
|
||||||
|
pkg-config
|
||||||
|
openssl
|
||||||
|
postgresql
|
||||||
|
sqlx-cli
|
||||||
|
];
|
||||||
|
|
||||||
|
shellHook = ''
|
||||||
|
export DATABASE_URL="postgres://${POSTGRES_APP_USER}:${POSTGRES_APP_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_APP_PORT}/${POSTGRES_APP_DB}"
|
||||||
|
export DW_DATABASE_URL="postgres://${POSTGRES_DW_USER}:${POSTGRES_DW_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_DW_PORT}/${POSTGRES_DW_DB}"
|
||||||
|
echo "✅ Rust + PostgreSQL dev env ready"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue