diff --git a/crates/tabby-scheduler/src/lib.rs b/crates/tabby-scheduler/src/lib.rs index 5d2c08f..df60758 100644 --- a/crates/tabby-scheduler/src/lib.rs +++ b/crates/tabby-scheduler/src/lib.rs @@ -11,7 +11,7 @@ pub async fn scheduler(now: bool) -> Result<()> { let config = Config::load()?; let mut scheduler = JobScheduler::new(); - let job = || { + let job1 = || { info!("Syncing repositories..."); let ret = repository::sync_repositories(&config); if let Err(err) = ret { @@ -25,7 +25,9 @@ pub async fn scheduler(now: bool) -> Result<()> { error!("Failed to build dataset, err: '{}'", err); return; } + }; + let job2 = || { info!("Indexing repositories..."); let ret = index::index_repositories(&config); if let Err(err) = ret { @@ -34,10 +36,14 @@ pub async fn scheduler(now: bool) -> Result<()> { }; if now { - job(); + job1(); + job2(); } else { + // Every 5 minutes. + scheduler.add(Job::new("0 1/5 * * * * *".parse().unwrap(), job1)); + // Every 5 hours. - scheduler.add(Job::new("0 0 1/5 * * * *".parse().unwrap(), job)); + scheduler.add(Job::new("0 0 1/5 * * * *".parse().unwrap(), job2)); info!("Scheduler activated..."); loop { diff --git a/experimental/Caddyfile b/experimental/Caddyfile new file mode 100644 index 0000000..f0c0ccc --- /dev/null +++ b/experimental/Caddyfile @@ -0,0 +1,11 @@ +http://*:8080 { + handle_path /repos* { + reverse_proxy klaus:8080 { + header_up X-Script-Name "/repos" + } + } + + handle_path /* { + reverse_proxy tabby:8080 + } +} diff --git a/experimental/docker-compose.yaml b/experimental/docker-compose.yaml new file mode 100644 index 0000000..c01deeb --- /dev/null +++ b/experimental/docker-compose.yaml @@ -0,0 +1,39 @@ +version: '3.5' + +services: + web: + image: caddy + volumes: + - "./Caddyfile:/etc/caddy/Caddyfile:ro" + ports: + - 8080:8080 + + tabby: + restart: always + image: tabbyml/tabby + platform: linux/amd64 + command: serve --model TabbyML/T5P-220M + environment: + TABBY_ROOT: /data + volumes: + - "$HOME/.tabby:/data" + + scheduler: + restart: always + image: tabbyml/tabby + platform: linux/amd64 + command: scheduler + environment: + TABBY_ROOT: /data + volumes: + - "$HOME/.tabby:/data" + + klaus: + image: jonashaag/klaus + environment: + KLAUS_REPOS_ROOT: /repos + KLAUS_SITE_NAME: tabby + command: | + sh -c 'git config --global --add safe.directory "*" && pip install gunicorn && gunicorn klaus.contrib.wsgi_autoreload -b 0.0.0.0:8080' + volumes: + - "$HOME/.tabby/repositories:/repos:ro"