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_PASSWORD=sheetless
|
||||
|
||||
# Directory of your sheets
|
||||
# Directories containing permanent data
|
||||
SHEETS_DIRECTORY=/data/sheets
|
||||
CONFIG_DIRECTORY=/data/config
|
||||
|
||||
37
flake.nix
37
flake.nix
@@ -14,21 +14,56 @@
|
||||
flake-utils.lib.eachDefaultSystem (
|
||||
system: let
|
||||
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 {
|
||||
devShells.default = pkgs.mkShell {
|
||||
buildInputs = with pkgs; [
|
||||
go
|
||||
gopls
|
||||
go-tools
|
||||
|
||||
deploy
|
||||
];
|
||||
};
|
||||
|
||||
packages.default = pkgs.buildGoModule {
|
||||
packages = rec {
|
||||
default = sheetless-server;
|
||||
|
||||
sheetless-server = pkgs.buildGoModule {
|
||||
pname = "sheetless-server";
|
||||
version = "0.1.0";
|
||||
src = ./src;
|
||||
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
|
||||
}
|
||||
SheetsDirectory string
|
||||
ConfigDirectory string
|
||||
}
|
||||
|
||||
var AppConfig *Config
|
||||
@@ -47,6 +48,7 @@ func Load() {
|
||||
cfg.Admin.Password = getEnv("ADMIN_PASSWORD", "sheetless")
|
||||
|
||||
cfg.SheetsDirectory = getEnv("SHEETS_DIRECTORY", "./sheets_directory")
|
||||
cfg.ConfigDirectory = getEnv("CONFIG_DIRECTORY", "./config_directory")
|
||||
|
||||
AppConfig = cfg
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package database
|
||||
|
||||
import (
|
||||
"log"
|
||||
"path/filepath"
|
||||
"sheetless-server/config"
|
||||
"sheetless-server/models"
|
||||
|
||||
@@ -15,7 +16,8 @@ var DB *gorm.DB
|
||||
func InitDatabase() {
|
||||
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 {
|
||||
log.Fatal("Failed to connect to database:", err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user