From 0f692e4372c959249e9447b34ea82659b2f67286 Mon Sep 17 00:00:00 2001 From: zxq5 Date: Mon, 6 Apr 2026 13:44:50 +0100 Subject: [PATCH] updated docker compose and formatted backend. --- backend/sql/test.sql | 0 backend/src/lib.rs | 69 +++++++++++++++++++------------------- backend/tests/chat_test.py | 0 docker-compose.yml | 2 ++ 4 files changed, 36 insertions(+), 35 deletions(-) create mode 100644 backend/sql/test.sql create mode 100644 backend/tests/chat_test.py diff --git a/backend/sql/test.sql b/backend/sql/test.sql new file mode 100644 index 0000000..e69de29 diff --git a/backend/src/lib.rs b/backend/src/lib.rs index bfa8fa8..d03d338 100644 --- a/backend/src/lib.rs +++ b/backend/src/lib.rs @@ -4,23 +4,26 @@ #[macro_use] extern crate rocket; -pub mod messenger; pub mod api; -pub mod repo; -pub mod error; -pub mod svc; -pub mod model; pub mod cli; +pub mod error; +pub mod messenger; +pub mod model; +pub mod repo; +pub mod svc; -use crate::repo::{access_token_repo::AccessTokenRepo, Repo}; -use crate::repo::message_repo::MessageRepository; -use crate::repo::user_repo::UserRepository; -use crate::repo::space_repo::SpaceRepository; use crate::repo::channel_repo::ChannelRepository; +use crate::repo::message_repo::MessageRepository; +use crate::repo::space_repo::SpaceRepository; +use crate::repo::user_repo::UserRepository; +use crate::repo::{Repo, access_token_repo::AccessTokenRepo}; +use crate::svc::access_token_svc::AccessTokenService; use crate::svc::auth_svc::AuthService; use crate::svc::chat_svc::ChatService; +use crate::svc::llm_service::LlmService; use crate::svc::settings_svc::SettingsService; use crate::svc::user_svc::UserService; +use api::cdn; use rocket::fs::{FileServer, NamedFile}; use rocket::http::Method; use rocket_cors::{AllowedOrigins, CorsOptions}; @@ -29,9 +32,6 @@ use sqlx::postgres::PgPoolOptions; use std::env; use std::sync::{Arc, LazyLock}; use std::time::Duration; -use api::cdn; -use crate::svc::access_token_svc::AccessTokenService; -use crate::svc::llm_service::LlmService; pub fn rocket() -> rocket::Rocket { if std::env::var("RELEASE_MODE").unwrap_or_default() != "1" { @@ -39,6 +39,7 @@ pub fn rocket() -> rocket::Rocket { } let db_url = std::env::var("DATABASE_URL").expect("DATABASE_URL must be set"); + println!("Running with database URL: {}", db_url); let pool = PgPoolOptions::new() .max_connections(25) @@ -53,9 +54,22 @@ pub fn rocket() -> rocket::Rocket { let space_repo: Arc = Arc::new(SpaceRepository::new(pool.clone())); let channel_repo: Arc = Arc::new(ChannelRepository::new(pool.clone())); let llm_service = LlmService::new(); - let chat_service = ChatService::new(32, llm_service.clone(), message_repo.clone(), user_repo.clone(), channel_repo.clone(), space_repo.clone()); + let chat_service = ChatService::new( + 32, + llm_service.clone(), + message_repo.clone(), + user_repo.clone(), + channel_repo.clone(), + space_repo.clone(), + ); - rocket_builder(user_repo, token_repo, space_repo, channel_repo, chat_service) + rocket_builder( + user_repo, + token_repo, + space_repo, + channel_repo, + chat_service, + ) } pub fn rocket_builder( @@ -63,10 +77,8 @@ pub fn rocket_builder( token_repo: Arc, space_repo: Arc, channel_repo: Arc, - chat_service: ChatService + chat_service: ChatService, ) -> rocket::Rocket { - - let cors = CorsOptions::default() .allowed_origins(AllowedOrigins::all()) .allowed_methods( @@ -93,40 +105,29 @@ pub fn rocket_builder( .attach(Template::fairing()) .mount("/static", FileServer::from("static")) .mount("/cdn", cdn::routes()) - .mount( - "/", - routes![ - favicon, - - ], - ) + .mount("/", routes![favicon,]) .mount( "/api", routes![ cdn::upload_profile_pic, api::profile::display_name, - // basic auth api::auth::login, api::auth::signup, - // 2fa api::totp::confirm_totp, api::totp::disable_totp, api::totp::get_totp, api::totp::get_totp_status, api::totp::verify_totp, - // chat api::chat::event_stream, api::chat::post_message, - // user settings api::settings::change_display_name, api::settings::change_password, api::settings::change_username, api::settings::delete_account, - // spaces api::space::list_spaces, api::space::list_channels, @@ -135,15 +136,13 @@ pub fn rocket_builder( ) .register( "/", - catchers![ - error::handle_401, - error::handle_404, - error::handle_default, - ], + catchers![error::handle_401, error::handle_404, error::handle_default,], ) } #[get("/favicon.ico")] pub async fn favicon() -> NamedFile { - NamedFile::open("static/favicon.ico").await.unwrap() + NamedFile::open("static/favicon.ico") + .await + .expect("favicon not found") } diff --git a/backend/tests/chat_test.py b/backend/tests/chat_test.py new file mode 100644 index 0000000..e69de29 diff --git a/docker-compose.yml b/docker-compose.yml index e8a85bd..867a438 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,6 +9,8 @@ services: environment: - ROCKET_SECRET_KEY=${ROCKET_SECRET_KEY} - DATABASE_URL=${DATABASE_URL} + - JWT_SECRET=${JWT_SECRET} + - RELEASE_MODE=1 redis: container_name: chatapp_redis image: docker.io/library/redis:alpine