{"id":24118065,"url":"https://github.com/citrusprod/svelte-kit-website-starter","last_synced_at":"2026-04-10T00:05:41.188Z","repository":{"id":37531782,"uuid":"372607795","full_name":"CitRUSprod/svelte-kit-website-starter","owner":"CitRUSprod","description":"Starter template for website with SvelteKit, Docker, PostgreSQL and Nginx.","archived":false,"fork":false,"pushed_at":"2024-04-12T21:09:08.000Z","size":2298,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-04-13T05:05:07.530Z","etag":null,"topics":["docker","docker-compose","eslint","fastify","nginx","postgresql","prettier","prisma","stylelint","svelte","sveltekit","typescript","unocss"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CitRUSprod.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-05-31T19:20:54.000Z","updated_at":"2024-04-14T18:36:07.683Z","dependencies_parsed_at":"2024-01-25T19:55:41.423Z","dependency_job_id":"0bf1e3f7-c01f-4c85-a760-80dec58ef59d","html_url":"https://github.com/CitRUSprod/svelte-kit-website-starter","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CitRUSprod%2Fsvelte-kit-website-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CitRUSprod%2Fsvelte-kit-website-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CitRUSprod%2Fsvelte-kit-website-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CitRUSprod%2Fsvelte-kit-website-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CitRUSprod","download_url":"https://codeload.github.com/CitRUSprod/svelte-kit-website-starter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241175710,"owners_count":19922559,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","eslint","fastify","nginx","postgresql","prettier","prisma","stylelint","svelte","sveltekit","typescript","unocss"],"created_at":"2025-01-11T08:17:49.413Z","updated_at":"2026-04-10T00:05:41.181Z","avatar_url":"https://github.com/CitRUSprod.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SvelteKit Website Starter\n\n### Get started\n\n\u003e **NOTE:** Before using this template, you need to install `pnpm` (only for development), `docker` and `docker compose`.\n\nCreate a new project based on this template using `degit`:\n\n```sh\npnpx degit CitRUSprod/svelte-kit-website-starter my-website\ncd my-website\npnpm i\n```\n\nThe launch is done through `docker compose`, but with scripts `scripts/dev` and `scripts/prod`:\n\n```sh\nscripts/dev \u003cdocker compose command\u003e\nscripts/prod \u003cdocker compose command\u003e\n```\n\nRun the project by entering these commands and open http://localhost:6700 in your browser:\n\n```sh\n# Development\nscripts/dev up -d\npnpm dev # or \"cd apps/\u003capp\u003e\" and \"pnpm dev\"\n\n# Production\nscripts/start\n```\n\n### Example of development mode commands\n\n```sh\nscripts/dev up -d # Start\nscripts/dev down # Stop\nscripts/dev logs \u003capp\u003e # View app logs\nscripts/dev exec \u003capp\u003e sh # Enter the app container\nscripts/dev \u003cdocker compose command\u003e # Any docker compose command\n```\n\n### Example of production mode commands\n\n```sh\nscripts/prod up -d # Start\nscripts/prod down # Stop\nscripts/prod logs \u003capp\u003e # View app logs\nscripts/prod exec \u003capp\u003e sh # Enter the app container\nscripts/prod \u003cdocker compose command\u003e # Any docker compose command\n\n# or shortcuts\n\nscripts/start # Start\nscripts/stop # Stop\nscripts/restart # Restart\n```\n\n### First run\n\n##### Development mode\n\n1. Enter this command and edit the `.env` file:\n\n```sh\nscripts/clone-env\n```\n\n2. Start required docker containers for development:\n\n```sh\nscripts/dev up -d\n```\n\n3. Install project dependencies:\n\n```sh\npnpm i\n```\n\n4. Build packages:\n\n```sh\npnpm build\n```\n\n5. Run database migrations:\n\n```sh\npnpm --filter api prisma:migrations:run\n```\n\n6. Seed the database:\n\n```sh\npnpm --filter api prisma:seeds:run\n```\n\n7. Start web and api in development mode:\n\n```sh\npnpm dev\n```\n\n##### Production mode\n\n1. Enter this command and edit the `.env` file:\n\n```sh\nscripts/clone-env\n```\n\n2. Start required docker containers for production:\n\n```sh\nscripts/start\n```\n\n3. Seed the database:\n\n```sh\nscripts/prod exec api pnpm prisma:seeds:run\n```\n\nAfter completing all steps, the application will be available at `http://localhost:\u003cWEBSITE_PORT\u003e` (default is http://localhost:6700).\n\n### Project Structure\n\n- `apps` - Applications\n- `packages` - Local libraries\n- `configs` - Configuration files (docker, nginx, etc.)\n- `scripts` - Project management scripts (start, stop, restart, backup, etc.)\n- `storage` - Storage directory for backups and other data that should not be in the repository\n- `e2e-tests` - E2E tests with Playwright\n\n### Tools\n\nCommit with `commitizen`:\n\n```sh\npnpm commit\n```\n\nCheck types with `tsc`:\n\n```sh\npnpm check-types\n```\n\nLint with linters:\n\n```sh\npnpm lint\n```\n\nFormat with formatters:\n\n```sh\npnpm format\n```\n\nUnit test with `vitest`:\n\n```sh\npnpm test:unit\n```\n\nE2E test with `playwright`:\n\n```sh\npnpm test:e2e\n```\n\nValidate project (types + linting + unit tests):\n\n```sh\npnpm validate\n```\n\n### Environment variables\n\nAll environment variables are written to the `.env` file. If it doesn't exist, just enter this command:\n\n```sh\nscripts/clone-env\n```\n\n### Migrations and seeds\n\nThe project uses `prisma` to work with the database.\n\nMigrations and seeds are located in `apps/api/src/prisma` in the `migrations` folder and `seeds.ts` file. To work with them, you need to go to the api app directory:\n\n```sh\n# Development\ncd apps/api\n\n# Production\nscripts/prod exec api sh\n```\n\nThen you can enter any of the following commands:\n\n```sh\npnpm prisma:migrations:create # Create migrations\npnpm prisma:migrations:run # Run migrations\npnpm prisma:migrations:reset # Reset migrations\npnpm prisma:seeds:run # Run default seeds\npnpm prisma:seeds:run --seed test-users # Run test users seeds\n```\n\n### Backups\n\nBackups are placed in `storage/backups` folder.\n\nFor manual backup you can use this command:\n\n```sh\nscripts/create-backup\n```\n\nFor automatic backups you can use these commands:\n\n```sh\nscripts/enable-automatic-backups # Enable automatic backups (using cron)\nscripts/check-automatic-backups # Check if automatic backups are enabled\nscripts/disable-automatic-backups # Disable automatic backups\n```\n\nThe schedule for automatic backups can be configured in `.env` file using `BACKUPS_SCHEDULE` variable in cron format.\nExample: `BACKUPS_SCHEDULE=\"0 3 * * *\"` for daily backup at 3 AM.\n\nTo restore a database from backup you can use this command:\n\n```sh\nscripts/restore-backup \u003cYYYY-MM-DD_hh-mm-ss\u003e # For example 2020-05-13_21-35-00\n```\n\n### Swagger\n\nSwagger UI is available at: http://localhost:6700/api/v1/swagger.\n\nTo enable Swagger UI, set the `ENABLE_SWAGGER=true` variable in your `.env` file.\n\n### Adminer\n\nAdminer is available at: http://localhost:6700/admin/adminer.\nLogin credentials: `POSTGRES_USER`, `POSTGRES_PASSWORD` and `POSTGRES_DB` from `.env`.\n\n### MinIO\n\nMinIO Console is available at: http://localhost:6700/admin/minio.\nLogin credentials: `MINIO_USER` and `MINIO_PASSWORD` from `.env`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcitrusprod%2Fsvelte-kit-website-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcitrusprod%2Fsvelte-kit-website-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcitrusprod%2Fsvelte-kit-website-starter/lists"}