feat: rename service to galo, add halo branding and release build

- rename Go module, binary, systemd unit, PG_DATABASE default, frontend package and docs from shared-album to galo
- add theme-aware halo emblem and favicon (new ui-branding capability)
- add make build-release (versioned, stripped, static binary) and run the binary from the repo root
This commit is contained in:
iu
2026-10-11 11:36:56 +03:00
parent 29c2594a9b
commit 50dff63ece
89 changed files with 696 additions and 254 deletions
+2 -2
View File
@@ -9,8 +9,8 @@ import (
"github.com/gin-gonic/gin"
"shared-album/internal/auth"
"shared-album/internal/httpx"
"galo/internal/auth"
"galo/internal/httpx"
)
const maxUploadSize = 100 << 20
+6 -6
View File
@@ -12,12 +12,12 @@ import (
"github.com/jackc/pgx/v5/pgxpool"
"shared-album/internal/auth"
"shared-album/internal/config"
"shared-album/internal/models"
"shared-album/internal/roles"
"shared-album/internal/sse"
"shared-album/internal/storage"
"galo/internal/auth"
"galo/internal/config"
"galo/internal/models"
"galo/internal/roles"
"galo/internal/sse"
"galo/internal/storage"
)
func testPool(t *testing.T) *pgxpool.Pool {
+1 -1
View File
@@ -8,7 +8,7 @@ import (
"github.com/jackc/pgx/v5/pgxpool"
"shared-album/internal/auth"
"galo/internal/auth"
)
func TestObjectStateTransitions(t *testing.T) {
+1 -1
View File
@@ -4,7 +4,7 @@ import (
"context"
"time"
"shared-album/internal/models"
"galo/internal/models"
)
// Repository is the persistence contract for the photos domain, including the
+6 -6
View File
@@ -9,12 +9,12 @@ import (
"strings"
"time"
"shared-album/internal/auth"
"shared-album/internal/httpx"
"shared-album/internal/models"
"shared-album/internal/roles"
"shared-album/internal/sse"
"shared-album/internal/storage"
"galo/internal/auth"
"galo/internal/httpx"
"galo/internal/models"
"galo/internal/roles"
"galo/internal/sse"
"galo/internal/storage"
)
type AlbumAccess interface {
+1 -1
View File
@@ -3,7 +3,7 @@ package photos
import (
"time"
"shared-album/internal/sqliteutil"
"galo/internal/sqliteutil"
)
func nullIfEmpty(s string) any {
+1 -1
View File
@@ -6,7 +6,7 @@ import (
"errors"
"time"
"shared-album/internal/sqliteutil"
"galo/internal/sqliteutil"
)
// CreateObject inserts a new object row in the pending state.
+3 -3
View File
@@ -7,9 +7,9 @@ import (
"errors"
"strings"
"shared-album/internal/auth"
"shared-album/internal/models"
"shared-album/internal/sqliteutil"
"galo/internal/auth"
"galo/internal/models"
"galo/internal/sqliteutil"
)
// SQLiteStore is the SQLite implementation of Repository.
+2 -2
View File
@@ -11,8 +11,8 @@ import (
"github.com/jackc/pgx/v5/pgconn"
"github.com/jackc/pgx/v5/pgxpool"
"shared-album/internal/auth"
"shared-album/internal/models"
"galo/internal/auth"
"galo/internal/models"
)
var ErrNotFound = errors.New("photo not found")
+1 -1
View File
@@ -7,7 +7,7 @@ import (
"log/slog"
"time"
"shared-album/internal/auth"
"galo/internal/auth"
)
const maxVariantAttempts = 5
+1 -1
View File
@@ -7,7 +7,7 @@ import (
"github.com/jackc/pgx/v5/pgxpool"
"shared-album/internal/storage"
"galo/internal/storage"
)
func TestWorkerGeneratesVariantsAndCollects(t *testing.T) {