Compare commits
2 Commits
de94315bd9
...
7f52f27085
| Author | SHA1 | Date | |
|---|---|---|---|
| 7f52f27085 | |||
| dc6654ee93 |
@@ -13,5 +13,6 @@ SYNC_INTERVAL_MINUTES=1
|
|||||||
ADMIN_EMAIL=admin@admin.com
|
ADMIN_EMAIL=admin@admin.com
|
||||||
ADMIN_PASSWORD=sheetless
|
ADMIN_PASSWORD=sheetless
|
||||||
|
|
||||||
# Directory of your sheets
|
# Directories containing permanent data
|
||||||
SHEETS_DIRECTORY=/data/sheets
|
SHEETS_DIRECTORY=/data/sheets
|
||||||
|
CONFIG_DIRECTORY=/data/config
|
||||||
|
|||||||
37
flake.nix
37
flake.nix
@@ -14,21 +14,56 @@
|
|||||||
flake-utils.lib.eachDefaultSystem (
|
flake-utils.lib.eachDefaultSystem (
|
||||||
system: let
|
system: let
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
|
|
||||||
|
deploy = pkgs.writeShellScriptBin "deploy" ''
|
||||||
|
set -e; set -o pipefail; set -x;
|
||||||
|
|
||||||
|
nix build .#docker
|
||||||
|
image=$((docker load < result) | sed -n '$s/^Loaded image: //p')
|
||||||
|
docker image tag "$image" harbor.julian-mutter.de/sheetless/sheetless-server:latest
|
||||||
|
docker push harbor.julian-mutter.de/sheetless/sheetless-server:latest
|
||||||
|
'';
|
||||||
in {
|
in {
|
||||||
devShells.default = pkgs.mkShell {
|
devShells.default = pkgs.mkShell {
|
||||||
buildInputs = with pkgs; [
|
buildInputs = with pkgs; [
|
||||||
go
|
go
|
||||||
gopls
|
gopls
|
||||||
go-tools
|
go-tools
|
||||||
|
|
||||||
|
deploy
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
packages.default = pkgs.buildGoModule {
|
packages = rec {
|
||||||
|
default = sheetless-server;
|
||||||
|
|
||||||
|
sheetless-server = pkgs.buildGoModule {
|
||||||
pname = "sheetless-server";
|
pname = "sheetless-server";
|
||||||
version = "0.1.0";
|
version = "0.1.0";
|
||||||
src = ./src;
|
src = ./src;
|
||||||
vendorHash = "sha256-NnHo1wcsX0aCBpay8eEyjmtO7+Qe8gcBPITobP7WtkA=";
|
vendorHash = "sha256-NnHo1wcsX0aCBpay8eEyjmtO7+Qe8gcBPITobP7WtkA=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
docker = pkgs.dockerTools.buildImage {
|
||||||
|
name = "sheetless-server";
|
||||||
|
tag = "latest";
|
||||||
|
|
||||||
|
copyToRoot = with pkgs; [
|
||||||
|
dockerTools.usrBinEnv
|
||||||
|
dockerTools.binSh
|
||||||
|
dockerTools.caCertificates
|
||||||
|
|
||||||
|
coreutils
|
||||||
|
sheetless-server
|
||||||
|
];
|
||||||
|
|
||||||
|
config = {
|
||||||
|
Cmd = ["/bin/sheetless-server"];
|
||||||
|
Expose = "8080";
|
||||||
|
};
|
||||||
|
created = "now";
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ type Config struct {
|
|||||||
Password string
|
Password string
|
||||||
}
|
}
|
||||||
SheetsDirectory string
|
SheetsDirectory string
|
||||||
|
ConfigDirectory string
|
||||||
}
|
}
|
||||||
|
|
||||||
var AppConfig *Config
|
var AppConfig *Config
|
||||||
@@ -47,6 +48,7 @@ func Load() {
|
|||||||
cfg.Admin.Password = getEnv("ADMIN_PASSWORD", "sheetless")
|
cfg.Admin.Password = getEnv("ADMIN_PASSWORD", "sheetless")
|
||||||
|
|
||||||
cfg.SheetsDirectory = getEnv("SHEETS_DIRECTORY", "./sheets_directory")
|
cfg.SheetsDirectory = getEnv("SHEETS_DIRECTORY", "./sheets_directory")
|
||||||
|
cfg.ConfigDirectory = getEnv("CONFIG_DIRECTORY", "./config_directory")
|
||||||
|
|
||||||
AppConfig = cfg
|
AppConfig = cfg
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package database
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"log"
|
"log"
|
||||||
|
"path/filepath"
|
||||||
"sheetless-server/config"
|
"sheetless-server/config"
|
||||||
"sheetless-server/models"
|
"sheetless-server/models"
|
||||||
|
|
||||||
@@ -15,7 +16,8 @@ var DB *gorm.DB
|
|||||||
func InitDatabase() {
|
func InitDatabase() {
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
DB, err = gorm.Open(sqlite.Open("sheetless.db"), &gorm.Config{})
|
databaseFile := filepath.Join(config.AppConfig.ConfigDirectory, "sheetless.db")
|
||||||
|
DB, err = gorm.Open(sqlite.Open(databaseFile), &gorm.Config{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("Failed to connect to database:", err)
|
log.Fatal("Failed to connect to database:", err)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user