ci: docker compose for easy access

This commit is contained in:
Syahdan 2026-05-25 13:40:09 +07:00
parent a6edf804b4
commit c42b8e2904
11 changed files with 249 additions and 13 deletions

View file

@ -15,6 +15,7 @@
"db:studio": "drizzle-kit studio",
"db:migrate": "drizzle-kit migrate",
"db:seed": "bun --env-file=../../apps/server/.env run ./src/seed.ts",
"db:seed:if-empty": "bun --env-file=../../apps/server/.env run ./src/seed-if-empty.ts",
"db:start": "docker compose up -d",
"db:watch": "docker compose up",
"db:stop": "docker compose stop",

View file

@ -0,0 +1,34 @@
import dotenv from "dotenv";
dotenv.config({
path: new URL("../../../apps/server/.env", import.meta.url).pathname,
});
import { db } from "./index";
import { seed } from "./seed";
async function seedIfEmpty() {
const existingUser = await db.query.user.findFirst({
columns: {
id: true,
},
});
if (existingUser) {
console.info("Database already has users; skipping sample seed.");
return;
}
await seed();
console.info("Seeded auth admin and monitoring dashboard sample data.");
console.info("Admin login: admin@minmon.local / admin12345");
}
seedIfEmpty()
.then(() => {
process.exit(0);
})
.catch((error) => {
console.error("Failed to initialize seed data.", error);
process.exit(1);
});

View file

@ -261,18 +261,20 @@ async function seedMonitoringData() {
);
}
async function seed() {
export async function seed() {
await seedAuthAdmin();
await seedMonitoringData();
}
seed()
.then(() => {
console.info("Seeded auth admin and monitoring dashboard sample data.");
console.info("Admin login: admin@minmon.local / admin12345");
process.exit(0);
})
.catch((error) => {
console.error("Failed to seed dashboard sample data.", error);
process.exit(1);
});
if (import.meta.main) {
seed()
.then(() => {
console.info("Seeded auth admin and monitoring dashboard sample data.");
console.info("Admin login: admin@minmon.local / admin12345");
process.exit(0);
})
.catch((error) => {
console.error("Failed to seed dashboard sample data.", error);
process.exit(1);
});
}