Initial commit

This commit is contained in:
Pierre HUBERT 2025-03-17 18:23:33 +01:00
commit 0614b23d59
7 changed files with 130 additions and 0 deletions

37
README.md Normal file
View File

@ -0,0 +1,37 @@
# MoneyMgr
## Setup dev env
1. Install prerequisites:
1. docker
2. docker-compose
3. rust
4. node
2. Start services
```
cd moneymgr_backend
mkdir -p storage/{db,redis-data,redis-conf,minio}
docker compose up
```
3. Install Diesel CLI:
```bash
sudo apt install libpq5 libpq-dev pkg-config libssl-dev cmake
cargo install diesel_cli --no-default-features --features postgres
```
4. Initialize database:
```bash
diesel migration run
```
> Note: You can access the database directly using this command:
>
> ```bash
> PGPASSWORD=pass psql -h localhost -p 5432 -U user -d moneymgr
> ```

3
moneymgr_backend/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
target
.idea
storage

7
moneymgr_backend/Cargo.lock generated Normal file
View File

@ -0,0 +1,7 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 4
[[package]]
name = "moneymgr_backend"
version = "0.1.0"

View File

@ -0,0 +1,6 @@
[package]
name = "moneymgr_backend"
version = "0.1.0"
edition = "2024"
[dependencies]

View File

@ -0,0 +1,48 @@
services:
minio:
image: minio/minio
user: "1000"
environment:
- MINIO_ROOT_USER=topsecret
- MINIO_ROOT_PASSWORD=topsecret
volumes:
- ./storage/minio:/data
command: [ "minio", "server", "/data", "--console-address", ":9090" ]
ports:
- 9000:9000
- 9090:9090
expose:
- 9000
db:
image: postgres
user: "1000"
ports:
- "5432:5432"
expose:
- 5432
environment:
- POSTGRES_USER=user
- POSTGRES_PASSWORD=pass
- POSTGRES_DB=moneymgr
volumes:
- ./storage/db:/var/lib/postgresql/data
oidc:
image: dexidp/dex
user: "1000"
ports:
- 9001:9001
volumes:
- ./docker/dex:/conf:ro
command: [ "dex", "serve", "/conf/dex.config.yaml" ]
redis:
image: redis:alpine
user: "1000"
command: redis-server --requirepass ${REDIS_PASS:-secretredis}
ports:
- 6379:6379
volumes:
- ./storage/redis-data:/data
- ./storage/redis-conf:/usr/local/etc/redis/redis.conf

View File

@ -0,0 +1,26 @@
issuer: http://127.0.0.1:9001/dex
storage:
type: memory
web:
http: 0.0.0.0:9001
oauth2:
# Automate some clicking
# Note: this might actually make some tests pass that otherwise wouldn't.
skipApprovalScreen: false
connectors:
# Note: this might actually make some tests pass that otherwise wouldn't.
- type: mockCallback
id: mock
name: Example
# Basic OP test suite requires two clients.
staticClients:
- id: foo
secret: bar
redirectURIs:
- http://localhost:5173/web/oidc_cb
name: Project

View File

@ -0,0 +1,3 @@
fn main() {
println!("Hello, world!");
}