feat: add experimental self host setup (#261)
parent
0265d946d9
commit
8879ed7655
|
|
@ -11,7 +11,7 @@ pub async fn scheduler(now: bool) -> Result<()> {
|
||||||
let config = Config::load()?;
|
let config = Config::load()?;
|
||||||
let mut scheduler = JobScheduler::new();
|
let mut scheduler = JobScheduler::new();
|
||||||
|
|
||||||
let job = || {
|
let job1 = || {
|
||||||
info!("Syncing repositories...");
|
info!("Syncing repositories...");
|
||||||
let ret = repository::sync_repositories(&config);
|
let ret = repository::sync_repositories(&config);
|
||||||
if let Err(err) = ret {
|
if let Err(err) = ret {
|
||||||
|
|
@ -25,7 +25,9 @@ pub async fn scheduler(now: bool) -> Result<()> {
|
||||||
error!("Failed to build dataset, err: '{}'", err);
|
error!("Failed to build dataset, err: '{}'", err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
let job2 = || {
|
||||||
info!("Indexing repositories...");
|
info!("Indexing repositories...");
|
||||||
let ret = index::index_repositories(&config);
|
let ret = index::index_repositories(&config);
|
||||||
if let Err(err) = ret {
|
if let Err(err) = ret {
|
||||||
|
|
@ -34,10 +36,14 @@ pub async fn scheduler(now: bool) -> Result<()> {
|
||||||
};
|
};
|
||||||
|
|
||||||
if now {
|
if now {
|
||||||
job();
|
job1();
|
||||||
|
job2();
|
||||||
} else {
|
} else {
|
||||||
|
// Every 5 minutes.
|
||||||
|
scheduler.add(Job::new("0 1/5 * * * * *".parse().unwrap(), job1));
|
||||||
|
|
||||||
// Every 5 hours.
|
// 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...");
|
info!("Scheduler activated...");
|
||||||
loop {
|
loop {
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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"
|
||||||
Loading…
Reference in New Issue