Compare commits
5 Commits
dev
...
fix-gitea-
| Author | SHA1 | Date | |
|---|---|---|---|
|
f385fcdc28
|
|||
|
af4d4e393a
|
|||
|
0f96c67058
|
|||
|
fbee56e460
|
|||
|
a8286f9ce2
|
@@ -66,8 +66,8 @@ extension ComponentPressureLoss {
|
||||
.id()
|
||||
.field("name", .string, .required)
|
||||
.field("value", .double, .required)
|
||||
.field("createdAt", .string)
|
||||
.field("updatedAt", .string)
|
||||
.field("createdAt", .datetime)
|
||||
.field("updatedAt", .datetime)
|
||||
.field(
|
||||
"projectID", .uuid, .required, .references(ProjectModel.schema, "id", onDelete: .cascade)
|
||||
)
|
||||
|
||||
@@ -73,8 +73,8 @@ extension EquipmentInfo {
|
||||
.field("staticPressure", .double, .required)
|
||||
.field("heatingCFM", .int16, .required)
|
||||
.field("coolingCFM", .int16, .required)
|
||||
.field("createdAt", .string)
|
||||
.field("updatedAt", .string)
|
||||
.field("createdAt", .datetime)
|
||||
.field("updatedAt", .datetime)
|
||||
.field(
|
||||
"projectID", .uuid, .required, .references(ProjectModel.schema, "id", onDelete: .cascade)
|
||||
)
|
||||
|
||||
@@ -90,8 +90,8 @@ extension EquivalentLength {
|
||||
.field("type", .string, .required)
|
||||
.field("straightLengths", .array(of: .int))
|
||||
.field("groups", .data)
|
||||
.field("createdAt", .string)
|
||||
.field("updatedAt", .string)
|
||||
.field("createdAt", .datetime)
|
||||
.field("updatedAt", .datetime)
|
||||
.field(
|
||||
"projectID", .uuid, .required, .references(ProjectModel.schema, "id", onDelete: .cascade)
|
||||
)
|
||||
|
||||
@@ -7,10 +7,10 @@ extension DatabaseClient.Migrations: DependencyKey {
|
||||
public static let liveValue = Self(
|
||||
all: {
|
||||
[
|
||||
Project.Migrate(),
|
||||
User.Migrate(),
|
||||
User.Token.Migrate(),
|
||||
User.Profile.Migrate(),
|
||||
Project.Migrate(),
|
||||
ComponentPressureLoss.Migrate(),
|
||||
EquipmentInfo.Migrate(),
|
||||
Room.Migrate(),
|
||||
|
||||
@@ -120,8 +120,8 @@ extension Project {
|
||||
.field("state", .string, .required)
|
||||
.field("zipCode", .string, .required)
|
||||
.field("sensibleHeatRatio", .double)
|
||||
.field("createdAt", .string)
|
||||
.field("updatedAt", .string)
|
||||
.field("createdAt", .datetime)
|
||||
.field("updatedAt", .datetime)
|
||||
.field("userID", .uuid, .required, .references(UserModel.schema, "id", onDelete: .cascade))
|
||||
.unique(on: "userID", "name")
|
||||
.create()
|
||||
|
||||
@@ -197,8 +197,8 @@ extension Room {
|
||||
.field("registerCount", .int8, .required)
|
||||
.field("delegatedToID", .uuid, .references(RoomModel.schema, "id"))
|
||||
.field("rectangularSizes", .array)
|
||||
.field("createdAt", .string)
|
||||
.field("updatedAt", .string)
|
||||
.field("createdAt", .datetime)
|
||||
.field("updatedAt", .datetime)
|
||||
.field(
|
||||
"projectID", .uuid, .required, .references(ProjectModel.schema, "id", onDelete: .cascade)
|
||||
)
|
||||
|
||||
@@ -81,8 +81,8 @@ extension User.Profile {
|
||||
.field("zipCode", .string, .required)
|
||||
.field("theme", .string)
|
||||
.field("userID", .uuid, .references(UserModel.schema, "id", onDelete: .cascade))
|
||||
.field("createdAt", .string)
|
||||
.field("updatedAt", .string)
|
||||
.field("createdAt", .datetime)
|
||||
.field("updatedAt", .datetime)
|
||||
.unique(on: "userID")
|
||||
.create()
|
||||
}
|
||||
|
||||
@@ -76,8 +76,8 @@ extension User {
|
||||
.id()
|
||||
.field("email", .string, .required)
|
||||
.field("password_hash", .string, .required)
|
||||
.field("createdAt", .string)
|
||||
.field("updatedAt", .string)
|
||||
.field("createdAt", .datetime)
|
||||
.field("updatedAt", .datetime)
|
||||
.unique(on: "email")
|
||||
.create()
|
||||
}
|
||||
@@ -97,8 +97,8 @@ extension User.Token {
|
||||
.id()
|
||||
.field("value", .string, .required)
|
||||
.field("user_id", .uuid, .required, .references(UserModel.schema, "id"))
|
||||
.field("createdAt", .string)
|
||||
.field("updatedAt", .string)
|
||||
.field("createdAt", .datetime)
|
||||
.field("updatedAt", .datetime)
|
||||
.unique(on: "value")
|
||||
.create()
|
||||
}
|
||||
|
||||
@@ -63,8 +63,7 @@ struct HomeView: HTML, Sendable {
|
||||
.class("btn btn-xl btn-primary mt-6"),
|
||||
.hx.get(route: .signup(.index)),
|
||||
.hx.target("body"),
|
||||
.hx.swap(.outerHTML),
|
||||
.hx.pushURL(true)
|
||||
.hx.swap(.outerHTML)
|
||||
) {
|
||||
"Get Started"
|
||||
}
|
||||
|
||||
1
TODO.md
1
TODO.md
@@ -23,4 +23,3 @@
|
||||
- [x] Privacy policy
|
||||
- [ ] Update README
|
||||
- [ ] Self hosting documentation
|
||||
- [x] Check signup flow when using 'get-started' button from home page, it may need a push url.
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
services:
|
||||
db:
|
||||
image: docker.io/postgres:18
|
||||
restart: unless-stopped
|
||||
env_file: .env
|
||||
volumes:
|
||||
- ./data:/var/lib/postgresql
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U ductcalc"]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
app:
|
||||
build:
|
||||
dockerfile: docker/Dockerfile
|
||||
context: .
|
||||
restart: unless-stopped
|
||||
env_file: .env
|
||||
environment:
|
||||
- POSTGRES_HOSTNAME=db
|
||||
depends_on:
|
||||
db:
|
||||
condition: healthy
|
||||
ports:
|
||||
- 8081:8080
|
||||
healthcheck:
|
||||
test: curl --fail --silent http://0.0.0.0:8080/health || exit 1
|
||||
interval: 1m
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
services:
|
||||
db:
|
||||
image: docker.io/postgres:18
|
||||
@@ -7,9 +8,7 @@ services:
|
||||
- ./data:/var/lib/postgresql
|
||||
|
||||
app:
|
||||
build:
|
||||
dockerfile: docker/Dockerfile
|
||||
context: .
|
||||
image: ghcr.io/m-housh/ductcalc:latest
|
||||
restart: unless-stopped
|
||||
env_file: .env
|
||||
depends_on:
|
||||
|
||||
Reference in New Issue
Block a user