diff --git a/controllers/cartItemController.go b/controllers/cartItemController.go index 75c842e..e8e634e 100644 --- a/controllers/cartItemController.go +++ b/controllers/cartItemController.go @@ -11,9 +11,9 @@ import ( "github.com/gin-gonic/gin" "gorm.io/gorm" - "example.com/gin/test/models" - //"example.com/gin/test/services" - "example.com/gin/test/repositories" + "git.dynamicdiscord.de/kalipso/zineshop/models" + //"git.dynamicdiscord.de/kalipso/zineshop/services" + "git.dynamicdiscord.de/kalipso/zineshop/repositories" ) type CartItemController interface { diff --git a/controllers/printController.go b/controllers/printController.go index 6ec1a65..f917cd2 100644 --- a/controllers/printController.go +++ b/controllers/printController.go @@ -5,8 +5,8 @@ import ( "net/http" "strconv" - "example.com/gin/test/models" - "example.com/gin/test/repositories" + "git.dynamicdiscord.de/kalipso/zineshop/models" + "git.dynamicdiscord.de/kalipso/zineshop/repositories" "github.com/gin-gonic/gin" ) diff --git a/controllers/shopItemController.go b/controllers/shopItemController.go index 052cfdc..0f427c7 100644 --- a/controllers/shopItemController.go +++ b/controllers/shopItemController.go @@ -9,9 +9,9 @@ import ( "github.com/gin-gonic/gin" - "example.com/gin/test/models" - //"example.com/gin/test/services" - "example.com/gin/test/repositories" + "git.dynamicdiscord.de/kalipso/zineshop/models" + //"git.dynamicdiscord.de/kalipso/zineshop/services" + "git.dynamicdiscord.de/kalipso/zineshop/repositories" ) type CRUDController interface { diff --git a/controllers/userController.go b/controllers/userController.go index 05217bb..802a7ce 100644 --- a/controllers/userController.go +++ b/controllers/userController.go @@ -7,9 +7,9 @@ import ( "github.com/gin-gonic/gin" - "example.com/gin/test/models" - "example.com/gin/test/repositories" - "example.com/gin/test/services" + "git.dynamicdiscord.de/kalipso/zineshop/models" + "git.dynamicdiscord.de/kalipso/zineshop/repositories" + "git.dynamicdiscord.de/kalipso/zineshop/services" ) type UserController struct{} diff --git a/flake.nix b/flake.nix index edd0b37..7938e96 100644 --- a/flake.nix +++ b/flake.nix @@ -23,5 +23,71 @@ tailwindcss ]; }; + + packages.zineshop = nixpkgs.legacyPackages.x86_64-linux.buildGoModule { + pname = "zineshop"; + version = "1.0"; + vendorHash = "sha256-0M/xblZXVw4xIFZeDewYrFu7VGUCsPTPG13r9ZpTGJo="; + src = ./.; + }; + + nixosModules.zineshop = { config, lib, pkgs, ... }: + let + cfg = config.services.zineshop; + zineshop-pkg = self.packages.x86_64-linux.zineshop; + in + { + options = { + services.zineshop = { + enable = lib.mkOption { + default = false; + type = lib.types.bool; + description = lib.mdDoc '' + Enables zineshop + ''; + }; + }; + }; + + config = lib.mkIf cfg.enable { + environment.systemPackages = [ zineshop-pkg ]; + + users = { + groups.zineshop = {}; + users.zineshop = { + description = "zineshop user"; + group = "zineshop"; + isNormalUser = true; + }; + }; + + systemd.services.zineshop = { + description = "zineshop daemon"; + serviceConfig = { + Type = "simple"; + ExecStart = "${zineshop-pkg}/bin/main"; + Restart = "on-failure"; + }; + + environment = { + SQLITE_DB = "/var/lib/zineshop/zineshop.db"; + SECRET = "secretforjwt"; #TODO: BAD! + PORT = "8080"; + }; + + preStart = '' + mkdir -m 0770 -p "/var/lib/zineshop" + chown zineshop:zineshop "/var/lib/zineshop" + ''; + + wantedBy = [ "default.target" ]; + + environment = { + USER = "zineshop"; + HOME = "/var/lib/zineshop"; + }; + }; + }; + }; })) {}; } diff --git a/go.mod b/go.mod index 3024fee..5dd1a6c 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module example.com/gin/test +module git.dynamicdiscord.de/kalipso/zineshop go 1.23.3 diff --git a/main.go b/main.go index cafbcd9..f69582d 100644 --- a/main.go +++ b/main.go @@ -9,9 +9,9 @@ import ( "github.com/gin-gonic/gin" "github.com/joho/godotenv" - "example.com/gin/test/controllers" - "example.com/gin/test/middlewares" - "example.com/gin/test/repositories" + "git.dynamicdiscord.de/kalipso/zineshop/controllers" + "git.dynamicdiscord.de/kalipso/zineshop/middlewares" + "git.dynamicdiscord.de/kalipso/zineshop/repositories" ) var ( diff --git a/middlewares/requireAuth.go b/middlewares/requireAuth.go index de7545f..43e9bcc 100644 --- a/middlewares/requireAuth.go +++ b/middlewares/requireAuth.go @@ -9,8 +9,8 @@ import( "github.com/gin-gonic/gin" "github.com/golang-jwt/jwt/v5" - //"example.com/gin/test/models" - "example.com/gin/test/repositories" + //"git.dynamicdiscord.de/kalipso/zineshop/models" + "git.dynamicdiscord.de/kalipso/zineshop/repositories" ) type AuthValidator struct { diff --git a/repositories/OrderRepository.go b/repositories/OrderRepository.go index ccd0b1e..e5cc37b 100644 --- a/repositories/OrderRepository.go +++ b/repositories/OrderRepository.go @@ -4,7 +4,7 @@ import ( "gorm.io/gorm" "strconv" - "example.com/gin/test/models" + "git.dynamicdiscord.de/kalipso/zineshop/models" ) type OrderRepository interface { diff --git a/repositories/cartItemRepository.go b/repositories/cartItemRepository.go index 39d3d16..fa44e7e 100644 --- a/repositories/cartItemRepository.go +++ b/repositories/cartItemRepository.go @@ -4,7 +4,7 @@ import( "strconv" "gorm.io/gorm" - "example.com/gin/test/models" + "git.dynamicdiscord.de/kalipso/zineshop/models" ) type CartItemRepository interface { diff --git a/repositories/repository.go b/repositories/repository.go index 125b292..33f60ae 100644 --- a/repositories/repository.go +++ b/repositories/repository.go @@ -5,7 +5,7 @@ import ( "gorm.io/gorm" "os" - "example.com/gin/test/models" + "git.dynamicdiscord.de/kalipso/zineshop/models" ) var ( diff --git a/repositories/shopItemRepository.go b/repositories/shopItemRepository.go index 4a4b431..efd53dd 100644 --- a/repositories/shopItemRepository.go +++ b/repositories/shopItemRepository.go @@ -4,7 +4,7 @@ import( "strconv" "gorm.io/gorm" - "example.com/gin/test/models" + "git.dynamicdiscord.de/kalipso/zineshop/models" ) type ShopItemRepository interface { diff --git a/repositories/tagRepository.go b/repositories/tagRepository.go index 1a0aa2d..0f79447 100644 --- a/repositories/tagRepository.go +++ b/repositories/tagRepository.go @@ -5,7 +5,7 @@ import( "gorm.io/gorm" - "example.com/gin/test/models" + "git.dynamicdiscord.de/kalipso/zineshop/models" ) type TagRepository interface { diff --git a/repositories/userRepository.go b/repositories/userRepository.go index 84854a1..ae47eeb 100644 --- a/repositories/userRepository.go +++ b/repositories/userRepository.go @@ -3,7 +3,7 @@ package repositories import( "gorm.io/gorm" - "example.com/gin/test/models" + "git.dynamicdiscord.de/kalipso/zineshop/models" ) type UserRepository interface { diff --git a/services/shopItemService.go b/services/shopItemService.go index 0355460..7fb5d59 100644 --- a/services/shopItemService.go +++ b/services/shopItemService.go @@ -3,8 +3,8 @@ package services import( "fmt" - "example.com/gin/test/models" - "example.com/gin/test/repositories" + "git.dynamicdiscord.de/kalipso/zineshop/models" + "git.dynamicdiscord.de/kalipso/zineshop/repositories" ) var( diff --git a/services/userService.go b/services/userService.go index 4448d9a..597c5f6 100644 --- a/services/userService.go +++ b/services/userService.go @@ -7,8 +7,8 @@ import( "github.com/golang-jwt/jwt/v5" - "example.com/gin/test/models" - "example.com/gin/test/repositories" + "git.dynamicdiscord.de/kalipso/zineshop/models" + "git.dynamicdiscord.de/kalipso/zineshop/repositories" ) var(