Initial commit

This commit is contained in:
Yas Opisso
2025-12-12 14:44:27 -05:00
commit 3a16615149
22 changed files with 23682 additions and 0 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

BIN
lifemetrics-server/.DS_Store vendored Normal file

Binary file not shown.

3
lifemetrics-server/.env Normal file
View File

@@ -0,0 +1,3 @@
POCKETBASE_PORT=8080
POCKETBASE_ADMIN_USERNAME="contact@yasopisso.com"
POCKETBASE_ADMIN_PASSWORD="manager12"

View File

@@ -0,0 +1,26 @@
services:
lifemetrics-pb:
build:
context: ./pb
dockerfile: Dockerfile
container_name: lifemetrics-pb
restart: unless-stopped
environment:
- POCKETBASE_ADMIN_USERNAME=${POCKETBASE_ADMIN_USERNAME}
- POCKETBASE_ADMIN_PASSWORD=${POCKETBASE_ADMIN_PASSWORD}
ports:
- "${POCKETBASE_PORT}:8090"
volumes:
- ./pb/pb_data:/home/pocketbase/pb_data
- ./pb/pb_data_default:/home/pocketbase/pb_data_default
- ./pb/pb_public:/home/pocketbase/pb_public
- ./pb/pb_hooks:/home/pocketbase/pb_hooks
- ./pb/pb_migrations:/home/pocketbase/pb_migrations
networks:
- lifemetrics-network
networks:
lifemetrics-network:
name: lifemetrics-network
driver: bridge
# docker compose up -d --force-recreate --build

BIN
lifemetrics-server/pb/.DS_Store vendored Executable file

Binary file not shown.

View File

@@ -0,0 +1,26 @@
FROM alpine:latest
ARG PB_VERSION=0.28.4
RUN apk --no-cache add curl
RUN adduser -s /bin/bash -D pocketbase
USER pocketbase
WORKDIR /home/pocketbase
RUN curl -LJ "https://github.com/pocketbase/pocketbase/releases/download/v${PB_VERSION}/pocketbase_${PB_VERSION}_linux_amd64.zip" -o pb.zip
RUN unzip pb
RUN rm pb.zip
RUN mkdir pb_hooks
RUN mkdir pb_public
RUN mkdir pb_data
RUN mkdir pb_data_default
RUN mkdir pb_migrations
EXPOSE 8090
COPY --chown=pocketbase --chmod=700 ./pb_migrations/ ./pb_migrations
COPY --chown=pocketbase --chmod=700 ./pb_hooks/ ./pb_hooks
COPY --chown=pocketbase --chmod=700 ./initialize.sh .
ENTRYPOINT [ "./initialize.sh" ]

View File

@@ -0,0 +1,23 @@
#!/bin/sh
echo "Starting PocketBase initialization..."
DB_FILE="./pb_data/data.db"
# Step 1: Ensure the database file exists
if [ ! -f "$DB_FILE" ]; then
echo "Database not found. Copying default data..."
cp -r ./pb_data_default/. ./pb_data/
# This is only needed if we don't copy the default data
# ./pocketbase serve --http 0.0.0.0:8090 --automigrate=0 & sleep 4
# kill $(pidof pocketbase)
# Creates the admin user or updates if already exists
echo "Creating admin user"
./pocketbase superuser upsert "$POCKETBASE_ADMIN_USERNAME" "$POCKETBASE_ADMIN_PASSWORD"
fi
# Step 3: Start PocketBase normally
echo "Starting PocketBase..."
./pocketbase serve --http 0.0.0.0:8090

BIN
lifemetrics-server/pb/pb_data/.DS_Store vendored Executable file

Binary file not shown.

View File

Binary file not shown.

Binary file not shown.

23062
lifemetrics-server/pb/pb_data/types.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -0,0 +1,71 @@
/// <reference path="../pb_data/types.d.ts" />
migrate((app) => {
const collection = new Collection({
"createRule": null,
"deleteRule": null,
"fields": [
{
"autogeneratePattern": "[a-z0-9]{15}",
"hidden": false,
"id": "text3208210256",
"max": 15,
"min": 15,
"name": "id",
"pattern": "^[a-z0-9]+$",
"presentable": false,
"primaryKey": true,
"required": true,
"system": true,
"type": "text"
},
{
"autogeneratePattern": "",
"hidden": false,
"id": "text1579384326",
"max": 0,
"min": 0,
"name": "name",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": false,
"system": false,
"type": "text"
},
{
"hidden": false,
"id": "autodate2990389176",
"name": "created",
"onCreate": true,
"onUpdate": false,
"presentable": false,
"system": false,
"type": "autodate"
},
{
"hidden": false,
"id": "autodate3332085495",
"name": "updated",
"onCreate": true,
"onUpdate": true,
"presentable": false,
"system": false,
"type": "autodate"
}
],
"id": "pbc_3845069049",
"indexes": [],
"listRule": null,
"name": "workouts",
"system": false,
"type": "base",
"updateRule": null,
"viewRule": null
});
return app.save(collection);
}, (app) => {
const collection = app.findCollectionByNameOrId("pbc_3845069049");
return app.delete(collection);
})

View File

@@ -0,0 +1,85 @@
/// <reference path="../pb_data/types.d.ts" />
migrate((app) => {
const collection = new Collection({
"createRule": null,
"deleteRule": null,
"fields": [
{
"autogeneratePattern": "[a-z0-9]{15}",
"hidden": false,
"id": "text3208210256",
"max": 15,
"min": 15,
"name": "id",
"pattern": "^[a-z0-9]+$",
"presentable": false,
"primaryKey": true,
"required": true,
"system": true,
"type": "text"
},
{
"autogeneratePattern": "",
"hidden": false,
"id": "text1579384326",
"max": 0,
"min": 0,
"name": "name",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": false,
"system": false,
"type": "text"
},
{
"hidden": false,
"id": "select2363381545",
"maxSelect": 1,
"name": "type",
"presentable": false,
"required": false,
"system": false,
"type": "select",
"values": [
"MAIN MUSCLE GROUPS",
"ACCESSORY MUSCLE GROUPS"
]
},
{
"hidden": false,
"id": "autodate2990389176",
"name": "created",
"onCreate": true,
"onUpdate": false,
"presentable": false,
"system": false,
"type": "autodate"
},
{
"hidden": false,
"id": "autodate3332085495",
"name": "updated",
"onCreate": true,
"onUpdate": true,
"presentable": false,
"system": false,
"type": "autodate"
}
],
"id": "pbc_3122355729",
"indexes": [],
"listRule": null,
"name": "muscles",
"system": false,
"type": "base",
"updateRule": null,
"viewRule": null
});
return app.save(collection);
}, (app) => {
const collection = app.findCollectionByNameOrId("pbc_3122355729");
return app.delete(collection);
})

View File

@@ -0,0 +1,61 @@
/// <reference path="../pb_data/types.d.ts" />
migrate((app) => {
const collection = app.findCollectionByNameOrId("pbc_3845069049")
// add field
collection.fields.addAt(2, new Field({
"hidden": false,
"id": "number2492286417",
"max": null,
"min": null,
"name": "sets",
"onlyInt": false,
"presentable": false,
"required": false,
"system": false,
"type": "number"
}))
// add field
collection.fields.addAt(3, new Field({
"hidden": false,
"id": "number449999704",
"max": null,
"min": null,
"name": "weights",
"onlyInt": false,
"presentable": false,
"required": false,
"system": false,
"type": "number"
}))
// add field
collection.fields.addAt(4, new Field({
"hidden": false,
"id": "number1214113712",
"max": null,
"min": null,
"name": "reps",
"onlyInt": false,
"presentable": false,
"required": false,
"system": false,
"type": "number"
}))
return app.save(collection)
}, (app) => {
const collection = app.findCollectionByNameOrId("pbc_3845069049")
// remove field
collection.fields.removeById("number2492286417")
// remove field
collection.fields.removeById("number449999704")
// remove field
collection.fields.removeById("number1214113712")
return app.save(collection)
})

View File

@@ -0,0 +1,28 @@
/// <reference path="../pb_data/types.d.ts" />
migrate((app) => {
const collection = app.findCollectionByNameOrId("pbc_3845069049")
// add field
collection.fields.addAt(5, new Field({
"cascadeDelete": false,
"collectionId": "_pb_users_auth_",
"hidden": false,
"id": "relation2375276105",
"maxSelect": 999,
"minSelect": 0,
"name": "user",
"presentable": false,
"required": false,
"system": false,
"type": "relation"
}))
return app.save(collection)
}, (app) => {
const collection = app.findCollectionByNameOrId("pbc_3845069049")
// remove field
collection.fields.removeById("relation2375276105")
return app.save(collection)
})

View File

@@ -0,0 +1,84 @@
/// <reference path="../pb_data/types.d.ts" />
migrate((app) => {
const collection = new Collection({
"createRule": null,
"deleteRule": null,
"fields": [
{
"autogeneratePattern": "[a-z0-9]{15}",
"hidden": false,
"id": "text3208210256",
"max": 15,
"min": 15,
"name": "id",
"pattern": "^[a-z0-9]+$",
"presentable": false,
"primaryKey": true,
"required": true,
"system": true,
"type": "text"
},
{
"autogeneratePattern": "",
"hidden": false,
"id": "text1579384326",
"max": 0,
"min": 0,
"name": "name",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": false,
"system": false,
"type": "text"
},
{
"cascadeDelete": false,
"collectionId": "pbc_3122355729",
"hidden": false,
"id": "relation1841317061",
"maxSelect": 1,
"minSelect": 0,
"name": "group",
"presentable": false,
"required": false,
"system": false,
"type": "relation"
},
{
"hidden": false,
"id": "autodate2990389176",
"name": "created",
"onCreate": true,
"onUpdate": false,
"presentable": false,
"system": false,
"type": "autodate"
},
{
"hidden": false,
"id": "autodate3332085495",
"name": "updated",
"onCreate": true,
"onUpdate": true,
"presentable": false,
"system": false,
"type": "autodate"
}
],
"id": "pbc_1804250889",
"indexes": [],
"listRule": null,
"name": "exercises",
"system": false,
"type": "base",
"updateRule": null,
"viewRule": null
});
return app.save(collection);
}, (app) => {
const collection = app.findCollectionByNameOrId("pbc_1804250889");
return app.delete(collection);
})

View File

@@ -0,0 +1,71 @@
/// <reference path="../pb_data/types.d.ts" />
migrate((app) => {
const collection = new Collection({
"createRule": null,
"deleteRule": null,
"fields": [
{
"autogeneratePattern": "[a-z0-9]{15}",
"hidden": false,
"id": "text3208210256",
"max": 15,
"min": 15,
"name": "id",
"pattern": "^[a-z0-9]+$",
"presentable": false,
"primaryKey": true,
"required": true,
"system": true,
"type": "text"
},
{
"autogeneratePattern": "",
"hidden": false,
"id": "text1579384326",
"max": 0,
"min": 0,
"name": "name",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": false,
"system": false,
"type": "text"
},
{
"hidden": false,
"id": "autodate2990389176",
"name": "created",
"onCreate": true,
"onUpdate": false,
"presentable": false,
"system": false,
"type": "autodate"
},
{
"hidden": false,
"id": "autodate3332085495",
"name": "updated",
"onCreate": true,
"onUpdate": true,
"presentable": false,
"system": false,
"type": "autodate"
}
],
"id": "pbc_3071488795",
"indexes": [],
"listRule": null,
"name": "equipment",
"system": false,
"type": "base",
"updateRule": null,
"viewRule": null
});
return app.save(collection);
}, (app) => {
const collection = app.findCollectionByNameOrId("pbc_3071488795");
return app.delete(collection);
})

View File

@@ -0,0 +1,71 @@
/// <reference path="../pb_data/types.d.ts" />
migrate((app) => {
const collection = new Collection({
"createRule": null,
"deleteRule": null,
"fields": [
{
"autogeneratePattern": "[a-z0-9]{15}",
"hidden": false,
"id": "text3208210256",
"max": 15,
"min": 15,
"name": "id",
"pattern": "^[a-z0-9]+$",
"presentable": false,
"primaryKey": true,
"required": true,
"system": true,
"type": "text"
},
{
"autogeneratePattern": "",
"hidden": false,
"id": "text1579384326",
"max": 0,
"min": 0,
"name": "name",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": false,
"system": false,
"type": "text"
},
{
"hidden": false,
"id": "autodate2990389176",
"name": "created",
"onCreate": true,
"onUpdate": false,
"presentable": false,
"system": false,
"type": "autodate"
},
{
"hidden": false,
"id": "autodate3332085495",
"name": "updated",
"onCreate": true,
"onUpdate": true,
"presentable": false,
"system": false,
"type": "autodate"
}
],
"id": "pbc_2447119828",
"indexes": [],
"listRule": null,
"name": "equipments",
"system": false,
"type": "base",
"updateRule": null,
"viewRule": null
});
return app.save(collection);
}, (app) => {
const collection = app.findCollectionByNameOrId("pbc_2447119828");
return app.delete(collection);
})

View File

@@ -0,0 +1,71 @@
/// <reference path="../pb_data/types.d.ts" />
migrate((app) => {
const collection = app.findCollectionByNameOrId("pbc_3071488795");
return app.delete(collection);
}, (app) => {
const collection = new Collection({
"createRule": null,
"deleteRule": null,
"fields": [
{
"autogeneratePattern": "[a-z0-9]{15}",
"hidden": false,
"id": "text3208210256",
"max": 15,
"min": 15,
"name": "id",
"pattern": "^[a-z0-9]+$",
"presentable": false,
"primaryKey": true,
"required": true,
"system": true,
"type": "text"
},
{
"autogeneratePattern": "",
"hidden": false,
"id": "text1579384326",
"max": 0,
"min": 0,
"name": "name",
"pattern": "",
"presentable": false,
"primaryKey": false,
"required": false,
"system": false,
"type": "text"
},
{
"hidden": false,
"id": "autodate2990389176",
"name": "created",
"onCreate": true,
"onUpdate": false,
"presentable": false,
"system": false,
"type": "autodate"
},
{
"hidden": false,
"id": "autodate3332085495",
"name": "updated",
"onCreate": true,
"onUpdate": true,
"presentable": false,
"system": false,
"type": "autodate"
}
],
"id": "pbc_3071488795",
"indexes": [],
"listRule": null,
"name": "equipment",
"system": false,
"type": "base",
"updateRule": null,
"viewRule": null
});
return app.save(collection);
})

Binary file not shown.