diff --git a/manyfold/manyfold.sql b/manyfold/manyfold.sql index ef017df..08deadd 100644 --- a/manyfold/manyfold.sql +++ b/manyfold/manyfold.sql @@ -136,25 +136,28 @@ INSERT INTO schema_migrations VALUES('20250609210440'); INSERT INTO schema_migrations VALUES('20250620141805'); INSERT INTO schema_migrations VALUES('20250621223410'); INSERT INTO schema_migrations VALUES('20250629212656'); +INSERT INTO schema_migrations VALUES('20250716093106'); +INSERT INTO schema_migrations VALUES('20250724094951'); CREATE TABLE IF NOT EXISTS "ar_internal_metadata" ("key" varchar NOT NULL PRIMARY KEY, "value" varchar, "created_at" datetime(6) NOT NULL, "updated_at" datetime(6) NOT NULL); INSERT INTO ar_internal_metadata VALUES('environment','production','2025-07-25 10:52:31.380052','2025-07-25 10:52:31.380054'); CREATE TABLE IF NOT EXISTS "libraries" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "path" varchar NOT NULL, "created_at" datetime(6) NOT NULL, "updated_at" datetime(6) NOT NULL, "notes" varchar, "caption" varchar, "name" varchar, "tag_regex" text, "icon" text, "storage_service" varchar DEFAULT 'filesystem' NOT NULL, "s3_endpoint" varchar DEFAULT NULL, "s3_region" varchar DEFAULT NULL, "s3_bucket" varchar DEFAULT NULL, "s3_access_key_id" varchar DEFAULT NULL, "s3_secret_access_key" varchar DEFAULT NULL, "public_id" varchar, "s3_path_style" boolean DEFAULT 1 NOT NULL); +INSERT INTO libraries VALUES(6,'/mnt/experiences','2025-08-07','2025-08-07','','','experiences',NULL,'','filesystem','','','','','','experiences',1); CREATE TABLE IF NOT EXISTS "tags" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "created_at" datetime, "updated_at" datetime, "taggings_count" integer DEFAULT 0); CREATE TABLE IF NOT EXISTS "taggings" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "tag_id" integer, "taggable_type" varchar, "taggable_id" integer, "tagger_type" varchar, "tagger_id" integer, "context" varchar(128), "created_at" datetime, CONSTRAINT "fk_rails_9fcd2e236b" FOREIGN KEY ("tag_id") REFERENCES "tags" ("id") ); -CREATE TABLE IF NOT EXISTS "links" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "url" varchar, "linkable_type" varchar, "linkable_id" integer, "created_at" datetime(6) NOT NULL, "updated_at" datetime(6) NOT NULL); +CREATE TABLE IF NOT EXISTS "links" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "url" varchar, "linkable_type" varchar, "linkable_id" integer, "created_at" datetime(6) NOT NULL, "updated_at" datetime(6) NOT NULL, "synced_at" datetime(6)); CREATE TABLE IF NOT EXISTS "settings" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "var" varchar NOT NULL, "value" text, "created_at" datetime(6) NOT NULL, "updated_at" datetime(6) NOT NULL); -INSERT INTO settings VALUES(1,'default_library',replace('--- 2\n','\n',char(10)),'2025-07-25 10:58:00.004576','2025-07-28 13:30:03.381376'); +INSERT INTO settings VALUES(1,'default_library','6','2025-07-25 10:58:00.004576','2025-07-28 13:30:03.381376'); INSERT INTO settings VALUES(2,'site_name',replace('--- XRForge\n','\n',char(10)),'2025-07-25 10:59:04.496016','2025-07-25 10:59:04.496016'); -INSERT INTO settings VALUES(3,'site_tagline',replace('--- Self-sovereign XR Experiences based on 3D files & URLs\n','\n',char(10)),'2025-07-25 10:59:04.519264','2025-07-25 10:59:04.519264'); -INSERT INTO settings VALUES(4,'theme','vapor','2025-07-25 10:59:04.522670','2025-07-28 13:47:54.690364'); -INSERT INTO settings VALUES(5,'about',replace('--- ''''\n','\n',char(10)),'2025-07-25 10:59:04.527612','2025-07-25 10:59:04.527612'); +INSERT INTO settings VALUES(3,'site_tagline',replace('--- Self-sovereign XR Experiences. Connect 3D files via URLs\n','\n',char(10)),'2025-07-25 10:59:04.519264','2025-08-07 10:49:23.348065'); +INSERT INTO settings VALUES(4,'theme',replace('--- vapor\n','\n',char(10)),'2025-07-25 10:59:04.522670','2025-08-07 10:47:16.469331'); +INSERT INTO settings VALUES(5,'about',replace('--- |-\n XRForge is a preconfigured Manyfold, tailored to an XR Audience.\n\n # Features\n\n * linked VR-experiences (via XR Fragments spec)\n * federated libraries / network drives\n * automatic packaging for game-engines\n','\n',char(10)),'2025-07-25 10:59:04.527612','2025-08-07 10:51:18.592181'); INSERT INTO settings VALUES(6,'rules',replace('--- ''''\n','\n',char(10)),'2025-07-25 10:59:04.531378','2025-07-25 10:59:04.531378'); INSERT INTO settings VALUES(7,'support_link',replace('--- https://forgejo.isvery.ninja/coderofsalvation/xrforge\n','\n',char(10)),'2025-07-25 10:59:04.533678','2025-07-25 10:59:04.533678'); INSERT INTO settings VALUES(8,'site_icon',replace('--- ''''\n','\n',char(10)),'2025-07-25 10:59:04.536228','2025-07-25 14:19:06.192651'); -INSERT INTO settings VALUES(9,'model_path_template',replace('--- "{tags}/{tags}/{modelName}{modelId}"\n','\n',char(10)),'2025-07-28 15:57:18.598798','2025-07-28 15:57:18.598798'); +INSERT INTO settings VALUES(9,'model_path_template',replace('--- "{creator}/{modelId}"\n','\n',char(10)),'2025-07-28 15:57:18.598798','2025-07-28 15:57:18.598798'); INSERT INTO settings VALUES(10,'parse_metadata_from_path',replace('--- true\n','\n',char(10)),'2025-07-28 15:57:18.624917','2025-07-28 15:57:18.624917'); INSERT INTO settings VALUES(11,'safe_folder_names',replace('--- true\n','\n',char(10)),'2025-07-28 15:57:18.627224','2025-07-28 15:57:18.627224'); INSERT INTO settings VALUES(12,'model_ignored_files',replace('---\n- !ruby/regexp /^\.[^\.]+/\n- !ruby/regexp /.*\/@eaDir\/.*/\n- !ruby/regexp /__MACOSX/\n','\n',char(10)),'2025-07-28 15:57:18.633182','2025-07-28 15:57:18.633182'); @@ -163,6 +166,13 @@ INSERT INTO settings VALUES(14,'model_tags_tag_model_directory_name',replace('-- INSERT INTO settings VALUES(15,'model_tags_stop_words_locale',replace('--- en\n','\n',char(10)),'2025-07-28 15:57:18.643185','2025-07-28 15:57:18.643185'); INSERT INTO settings VALUES(16,'model_tags_custom_stop_words',replace('---\n- png\n- jpeg\n- jpg\n- jpe\n- pjpeg\n- gif\n- bmp\n- tiff\n- tif\n- svg\n- webp\n- threeds\n- 3ds\n- amf\n- ldr\n- mpd\n- scad\n- dwg\n- dxf\n- threemf\n- 3mf\n- gltf\n- glb\n- iges\n- igs\n- mtl\n- obj\n- step\n- stp\n- stl\n- collada\n- dae\n- draco\n- drc\n- vrml\n- wrl\n- abc\n- blend\n- brep\n- cheetah3d\n- jas\n- fbx\n- fcstd\n- f3d\n- f3z\n- ipt\n- iam\n- maya\n- ma\n- mb\n- mix\n- modo\n- lxo\n- ply\n- sketchup\n- skp\n- sldprt\n- hfp\n- speedtree\n- spm\n- x3d\n- gcode\n- bgcode\n- lychee\n- lys\n- lyt\n- chitubox\n- ctb\n- mpeg\n- mpg\n- mpe\n- webm\n- mp4\n- m4v\n- html\n- xhtml\n- text\n- txt\n- pdf\n- md\n- doc\n- docx\n- bin\n- gbr\n- gerber\n- geb\n- gb\n- gbrjob\n- drl\n- kicad_pro\n- pro\n- kicad_mod\n- kicad_pcb\n- kicad_sym\n- kicad_sch\n- sch\n- kicad_wks\n- zip\n- gzip\n- gz\n- rar\n- sevenz\n- 7z\n- bz2\n','\n',char(10)),'2025-07-28 15:57:18.645648','2025-07-28 15:57:18.645648'); INSERT INTO settings VALUES(17,'model_tags_auto_tag_new',replace('--- "!new"\n','\n',char(10)),'2025-07-28 15:57:18.648518','2025-07-28 15:57:18.648518'); +INSERT INTO settings VALUES(18,'registration_enabled',replace('--- true\n','\n',char(10)),'2025-08-07 10:46:21.848049','2025-08-07 10:46:21.848049'); +INSERT INTO settings VALUES(19,'approve_signups',replace('--- false\n','\n',char(10)),'2025-08-07 10:46:21.907863','2025-08-07 10:46:21.907863'); +INSERT INTO settings VALUES(20,'default_signup_role',replace('--- contributor\n','\n',char(10)),'2025-08-07 10:46:21.916715','2025-08-07 10:46:21.916715'); +INSERT INTO settings VALUES(21,'autocreate_creator_for_new_users',replace('--- true\n','\n',char(10)),'2025-08-07 10:46:21.926311','2025-08-07 10:46:21.926311'); +INSERT INTO settings VALUES(22,'default_viewer_role',replace('--- member\n','\n',char(10)),'2025-08-07 10:46:21.935093','2025-08-07 10:46:21.935093'); +INSERT INTO settings VALUES(23,'enable_user_quota',replace('--- false\n','\n',char(10)),'2025-08-07 10:46:21.944399','2025-08-07 10:46:21.944399'); +INSERT INTO settings VALUES(24,'default_user_quota',replace('--- 0\n','\n',char(10)),'2025-08-07 10:46:21.950723','2025-08-07 10:46:21.950723'); CREATE TABLE IF NOT EXISTS "problems" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "problematic_type" varchar, "problematic_id" integer, "category" integer, "created_at" datetime(6) NOT NULL, "updated_at" datetime(6) NOT NULL, "note" varchar DEFAULT NULL, "ignored" boolean DEFAULT 0 NOT NULL, "public_id" varchar, "in_progress" boolean DEFAULT 0 NOT NULL); CREATE TABLE IF NOT EXISTS "favorites" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "favoritable_type" varchar NOT NULL, "favoritable_id" integer NOT NULL, "favoritor_type" varchar NOT NULL, "favoritor_id" integer NOT NULL, "scope" varchar DEFAULT 'printed' NOT NULL, "blocked" boolean DEFAULT 0 NOT NULL, "created_at" datetime(6) NOT NULL, "updated_at" datetime(6) NOT NULL); CREATE TABLE IF NOT EXISTS "flipper_features" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "key" varchar NOT NULL, "created_at" datetime(6) NOT NULL, "updated_at" datetime(6) NOT NULL); @@ -241,7 +251,6 @@ FOREIGN KEY ("collection_id") FOREIGN KEY ("creator_id") REFERENCES "creators" ("id") ); -DELETE FROM sqlite_sequence; INSERT INTO sqlite_sequence VALUES('taggings',0); INSERT INTO sqlite_sequence VALUES('users',1); INSERT INTO sqlite_sequence VALUES('comments',0); @@ -253,8 +262,8 @@ INSERT INTO sqlite_sequence VALUES('models',0); INSERT INTO sqlite_sequence VALUES('creators',0); INSERT INTO sqlite_sequence VALUES('collections',0); INSERT INTO sqlite_sequence VALUES('roles',4); -INSERT INTO sqlite_sequence VALUES('libraries',5); -INSERT INTO sqlite_sequence VALUES('settings',17); +INSERT INTO sqlite_sequence VALUES('libraries',6); +INSERT INTO sqlite_sequence VALUES('settings',24); CREATE UNIQUE INDEX "index_tags_on_name" ON "tags" ("name"); CREATE UNIQUE INDEX "taggings_idx" ON "taggings" ("tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"); CREATE INDEX "taggings_taggable_context_idx" ON "taggings" ("taggable_id", "taggable_type", "context"); @@ -345,4 +354,5 @@ CREATE INDEX "index_creators_on_created_at" ON "creators" ("created_at"); CREATE INDEX "index_creators_on_updated_at" ON "creators" ("updated_at"); CREATE INDEX "index_collections_on_created_at" ON "collections" ("created_at"); CREATE INDEX "index_collections_on_updated_at" ON "collections" ("updated_at"); +CREATE INDEX "index_links_on_url" ON "links" ("url"); COMMIT; diff --git a/nix/docker.nix b/nix/docker.nix index ea68b23..4d20c55 100644 --- a/nix/docker.nix +++ b/nix/docker.nix @@ -50,9 +50,10 @@ rec pkgs.pkgsStatic.sqlite pkgs.pkgsStatic.rclone pkgs.pkgsStatic.fuse3 - pkgs.pkgsStatic.acl # getfacl e.g. + pkgs.pkgsStatic.acl # getfacl e.g. pkgs.pkgsStatic.inotify-tools # inotifywait e.g. - pkgs.pkgsStatic.zip # inotifywait e.g. + pkgs.pkgsStatic.zip # inotifywait e.g. + pkgs.pkgsStatic.ts # job management ./.. ]; };