Initial commit
This commit is contained in:
commit
0614b23d59
37
README.md
Normal file
37
README.md
Normal 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
3
moneymgr_backend/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
target
|
||||
.idea
|
||||
storage
|
7
moneymgr_backend/Cargo.lock
generated
Normal file
7
moneymgr_backend/Cargo.lock
generated
Normal 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"
|
6
moneymgr_backend/Cargo.toml
Normal file
6
moneymgr_backend/Cargo.toml
Normal file
@ -0,0 +1,6 @@
|
||||
[package]
|
||||
name = "moneymgr_backend"
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
48
moneymgr_backend/docker-compose.yml
Normal file
48
moneymgr_backend/docker-compose.yml
Normal 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
|
26
moneymgr_backend/docker/dex/dex.config.yaml
Normal file
26
moneymgr_backend/docker/dex/dex.config.yaml
Normal 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
|
3
moneymgr_backend/src/main.rs
Normal file
3
moneymgr_backend/src/main.rs
Normal file
@ -0,0 +1,3 @@
|
||||
fn main() {
|
||||
println!("Hello, world!");
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user