Compare commits

..

1 Commits

Author SHA1 Message Date
eb7e394cf0 Next release (#27)
All checks were successful
Rust Build / Check (push) Successful in 53s
Rust Build / Test Suite (push) Successful in 1m2s
Rust Build / Rustfmt (push) Successful in 32s
Rust Build / Clippy (push) Successful in 59s
Rust Build / build (push) Successful in 1m20s
Reviewed-on: #27
2025-04-12 00:27:47 +00:00
7 changed files with 41 additions and 46 deletions

View File

@@ -5,8 +5,6 @@ pkg/
# Ignore git directory # Ignore git directory
.git/ .git/
.gitea/
# Ignore environment files (configure via docker-compose instead) # Ignore environment files (configure via docker-compose instead)
.env* .env*

View File

@@ -1,6 +1,2 @@
SECRET_KEY=refero34o8rfhfjn983thf39fhc943rf923n3h DATABASE_URL=postgres://username:password@localhost/database_name
POSTGRES_USER=icarus_op_test SECRET_KEY=refero34o8rfhfjn983thf39fhc943rf923n3h
POSTGRES_PASSWORD=password
POSTGRES_DB=icarus_auth_test_db
POSTGRES_HOST=localhost
DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:5432/${POSTGRES_DB}

View File

@@ -34,6 +34,8 @@ RUN --mount=type=ssh mkdir src && \
# Copy the actual source code # Copy the actual source code
COPY src ./src COPY src ./src
# If you have other directories like `templates` or `static`, copy them too # If you have other directories like `templates` or `static`, copy them too
# COPY templates ./templates
# COPY static ./static
COPY .env ./.env COPY .env ./.env
COPY migrations ./migrations COPY migrations ./migrations
@@ -62,6 +64,8 @@ COPY --from=builder /usr/src/app/target/release/icarus_auth .
# It's generally better to configure via environment variables in Docker though # It's generally better to configure via environment variables in Docker though
COPY --from=builder /usr/src/app/.env . COPY --from=builder /usr/src/app/.env .
COPY --from=builder /usr/src/app/migrations ./migrations COPY --from=builder /usr/src/app/migrations ./migrations
# COPY --from=builder /usr/src/app/templates ./templates
# COPY --from=builder /usr/src/app/static ./static
# Expose the port your Axum app listens on (e.g., 3000 or 8000) # Expose the port your Axum app listens on (e.g., 3000 or 8000)
EXPOSE 3000 EXPOSE 3000

View File

@@ -1,26 +0,0 @@
# Getting Started
Copy the `.env.sample` file to `.env` and ensure that the variables are populated. This project
can be used with regular hosting or with docker. For the sake of getting up to speed quickly,
Docker will be covered. Make sure docker is running and your ssh identity has been loaded.
Build image
```
docker compose build
```
Start images
```
docker compose up -d --force-recreate
```
Bring it down
```
docker compose down -v
```
Pruning
```
docker system prune -a
```

View File

@@ -2,34 +2,43 @@ version: '3.8' # Use a recent version
services: services:
# Your Rust Application Service # Your Rust Application Service
auth_api: app:
build: # Tells docker-compose to build the Dockerfile in the current directory build: . # Tells docker-compose to build the Dockerfile in the current directory
context: .
ssh: ["default"] # Uses host's SSH agent
container_name: icarus_auth # Optional: Give the container a specific name container_name: icarus_auth # Optional: Give the container a specific name
ports: ports:
# Map host port 8000 to container port 3000 (adjust as needed) # Map host port 8000 to container port 3000 (adjust as needed)
# Format: "HOST_PORT:CONTAINER_PORT"
- "8000:3000" - "8000:3000"
env_file: environment:
- .env # Pass environment variables to your Rust application
# RUST_LOG: info # Example: Set log level
# IMPORTANT: Configure DATABASE_URL to connect to the 'db' service
# The hostname 'db' matches the service name defined below.
DATABASE_URL: postgresql://icarus_op:password@db:5432/icarus_auth
# Add any other environment variables your app needs
# APP_HOST: 0.0.0.0
# APP_PORT: 3000
depends_on: depends_on:
auth_db: db:
condition: service_healthy # Wait for the DB to be healthy before starting the app condition: service_healthy # Wait for the DB to be healthy before starting the app
restart: unless-stopped # Optional: Restart policy restart: unless-stopped # Optional: Restart policy
# PostgreSQL Database Service # PostgreSQL Database Service
auth_db: db:
image: postgres:17.4-alpine # Use an official Postgres image (Alpine variant is smaller) image: postgres:17.4-alpine # Use an official Postgres image (Alpine variant is smaller)
container_name: icarus_auth_db # Optional: Give the container a specific name container_name: icarus_auth_db # Optional: Give the container a specific name
environment: environment:
# These MUST match the user, password, and database name in the DATABASE_URL above # These MUST match the user, password, and database name in the DATABASE_URL above
POSTGRES_USER: ${POSTGRES_USER:-icarus_op} POSTGRES_USER: icarus_op
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-password} POSTGRES_PASSWORD: password
POSTGRES_DB: ${POSTGRES_DB:-icarus_auth} POSTGRES_DB: icarus_auth
volumes: volumes:
# Persist database data using a named volume # Persist database data using a named volume
- postgres_data:/var/lib/postgresql/data - postgres_data:/var/lib/postgresql/data
ports: [] ports: []
# Optional: Expose port 5432 ONLY if you need to connect directly from your host machine (e.g., for debugging)
# - "5432:5432"
# pass:
healthcheck: healthcheck:
# Checks if Postgres is ready to accept connections # Checks if Postgres is ready to accept connections
test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"] test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
@@ -42,4 +51,4 @@ services:
# Define the named volume for data persistence # Define the named volume for data persistence
volumes: volumes:
postgres_data: postgres_data:
driver: local # Use the default local driver driver: local # Use the default local driver

13
docker_run.txt Normal file
View File

@@ -0,0 +1,13 @@
# Docker stuff
#Build app
docker-compose build --ssh default app
# Rebuild and bring up
docker-compose up -d --force-recreate app
# Bring it down
docker-compose down -v
# Pruning
docker system prune -a

View File

@@ -36,6 +36,7 @@ pub mod db {
async fn get_db_url() -> String { async fn get_db_url() -> String {
#[cfg(debug_assertions)] // Example: Only load .env in debug builds #[cfg(debug_assertions)] // Example: Only load .env in debug builds
dotenvy::dotenv().ok(); dotenvy::dotenv().ok();
env::var(keys::DBURL).expect(keys::error::ERROR) env::var(keys::DBURL).expect(keys::error::ERROR)
} }