├── web
├── .npmrc
├── src
│ ├── routes
│ │ ├── +layout.js
│ │ ├── base.css
│ │ ├── +layout.svelte
│ │ ├── Counter.svelte
│ │ ├── Header.svelte
│ │ ├── styles.css
│ │ └── +page.svelte
│ ├── lib
│ │ ├── images
│ │ │ ├── svelte-welcome.png
│ │ │ ├── svelte-welcome.webp
│ │ │ ├── github.svg
│ │ │ └── svelte-logo.svg
│ │ ├── auth.js
│ │ └── Logo.svelte
│ ├── app.d.ts
│ └── app.html
├── static
│ ├── robots.txt
│ ├── favicon.png
│ └── favicon.svg
├── vite.config.js
├── .gitignore
├── svelte.config.js
├── jsconfig.json
├── package.json
└── README.md
├── docs
├── .npmrc
├── src
│ ├── routes
│ │ ├── +layout.js
│ │ ├── +layout.svelte
│ │ ├── global.css
│ │ ├── selfhost
│ │ │ └── +page.svelte
│ │ ├── roadmap
│ │ │ └── +page.svelte
│ │ └── +page.svelte
│ ├── lib
│ │ ├── index.js
│ │ └── ui
│ │ │ ├── index.js
│ │ │ ├── BottomBar.svelte
│ │ │ ├── Github.svelte
│ │ │ ├── Navbar.svelte
│ │ │ ├── Logo.svelte
│ │ │ └── HostingCalculator.svelte
│ ├── app.d.ts
│ └── app.html
├── .dockerignore
├── static
│ ├── favicon.png
│ ├── github.svg
│ └── favicon.svg
├── vite.config.js
├── .gitignore
├── Dockerfile
├── svelte.config.js
├── jsconfig.json
├── package.json
├── README.md
└── package-lock.json
├── api
├── data
│ ├── auth.json
│ └── pocketbase-ADzCZJPL_details.json
├── globals
│ └── globals.go
├── functions
│ ├── proxy.go
│ └── projects.go
├── paths
│ └── paths.go
├── filesystem
│ ├── filesystem.go
│ └── projects.go
├── go.mod
├── docker
│ ├── compose.go
│ ├── network.go
│ └── docker.go
├── main.go
├── auth
│ └── auth.go
└── go.sum
├── .dockerignore
├── go.work
├── .gitattributes
├── testing
├── go.mod
├── Dockerfile
├── lastworking.txt
└── main.go
├── images
├── app.jpeg
└── containers.png
├── .gitignore
├── todo.txt
├── dev.sh
├── go.work.sum
├── Buildpocketbase
├── Dockerfile
├── apiProtection.txt
├── commands.txt
├── .github
└── workflows
│ ├── build-pocketbase.yml
│ ├── build-dashboard.yml
│ └── deploy-docs.yml
└── README.md
/web/.npmrc:
--------------------------------------------------------------------------------
1 | engine-strict=true
2 |
--------------------------------------------------------------------------------
/docs/.npmrc:
--------------------------------------------------------------------------------
1 | engine-strict=true
2 |
--------------------------------------------------------------------------------
/api/data/auth.json:
--------------------------------------------------------------------------------
1 | {"password": "lazar"}
--------------------------------------------------------------------------------
/.dockerignore:
--------------------------------------------------------------------------------
1 | ./web/node_modules
2 | ./web/build
3 | ./testing
--------------------------------------------------------------------------------
/docs/src/routes/+layout.js:
--------------------------------------------------------------------------------
1 | export const prerender = true
2 |
--------------------------------------------------------------------------------
/web/src/routes/+layout.js:
--------------------------------------------------------------------------------
1 | export const prerender = true
2 |
--------------------------------------------------------------------------------
/docs/.dockerignore:
--------------------------------------------------------------------------------
1 | **/node_modules
2 | **/build
3 | **/.svelte-kit
--------------------------------------------------------------------------------
/go.work:
--------------------------------------------------------------------------------
1 | go 1.20
2 |
3 | use (
4 | ./api
5 | ./proxy
6 | )
7 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/testing/go.mod:
--------------------------------------------------------------------------------
1 | module github.com/lazarcloud/pocketbase-dashbaord/testing
2 |
3 | go 1.20
4 |
--------------------------------------------------------------------------------
/images/app.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lazarcloud/pocketbase-dashboard/HEAD/images/app.jpeg
--------------------------------------------------------------------------------
/docs/src/lib/index.js:
--------------------------------------------------------------------------------
1 | // place files you want to import through the `$lib` alias in this folder.
2 |
--------------------------------------------------------------------------------
/web/static/robots.txt:
--------------------------------------------------------------------------------
1 | # https://www.robotstxt.org/robotstxt.html
2 | User-agent: *
3 | Disallow:
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | **/node_modules
2 | **/build
3 | ./api/secure/
4 | ./api/secure/*
5 | ./api/data/
6 | ./api/data/*
--------------------------------------------------------------------------------
/docs/static/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lazarcloud/pocketbase-dashboard/HEAD/docs/static/favicon.png
--------------------------------------------------------------------------------
/images/containers.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lazarcloud/pocketbase-dashboard/HEAD/images/containers.png
--------------------------------------------------------------------------------
/web/static/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lazarcloud/pocketbase-dashboard/HEAD/web/static/favicon.png
--------------------------------------------------------------------------------
/web/src/lib/images/svelte-welcome.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lazarcloud/pocketbase-dashboard/HEAD/web/src/lib/images/svelte-welcome.png
--------------------------------------------------------------------------------
/web/src/lib/images/svelte-welcome.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lazarcloud/pocketbase-dashboard/HEAD/web/src/lib/images/svelte-welcome.webp
--------------------------------------------------------------------------------
/api/data/pocketbase-ADzCZJPL_details.json:
--------------------------------------------------------------------------------
1 | {"created_at":"2023-11-02T12:54:19.6042075+02:00","name":"pocketbase-ADzCZJPL","description":"Default description"}
--------------------------------------------------------------------------------
/todo.txt:
--------------------------------------------------------------------------------
1 | password hashing
2 | pocketbase image creation with proper versioning
3 | data backup
4 | add individual cors for every project
5 | move to a database
--------------------------------------------------------------------------------
/api/globals/globals.go:
--------------------------------------------------------------------------------
1 | package globals
2 |
3 | const DataFolder = "./data"
4 |
5 | const AuthFileDirectory = "./secure"
6 | const AuthFilePath = AuthFileDirectory + "/auth.json"
7 |
--------------------------------------------------------------------------------
/docs/vite.config.js:
--------------------------------------------------------------------------------
1 | import { sveltekit } from '@sveltejs/kit/vite';
2 | import { defineConfig } from 'vite';
3 |
4 | export default defineConfig({
5 | plugins: [sveltekit()]
6 | });
7 |
--------------------------------------------------------------------------------
/web/vite.config.js:
--------------------------------------------------------------------------------
1 | import { sveltekit } from '@sveltejs/kit/vite';
2 | import { defineConfig } from 'vite';
3 |
4 | export default defineConfig({
5 | plugins: [sveltekit()]
6 | });
7 |
--------------------------------------------------------------------------------
/docs/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /build
4 | /.svelte-kit
5 | /package
6 | .env
7 | .env.*
8 | !.env.example
9 | vite.config.js.timestamp-*
10 | vite.config.ts.timestamp-*
11 |
--------------------------------------------------------------------------------
/web/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /build
4 | /.svelte-kit
5 | /package
6 | .env
7 | .env.*
8 | !.env.example
9 | .vercel
10 | .output
11 | vite.config.js.timestamp-*
12 | vite.config.ts.timestamp-*
13 |
--------------------------------------------------------------------------------
/dev.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | docker build . -t monsieurlazar/lazarbase
4 | docker run -d -p 8081:80 -e ORIGIN=http://localhost:8081 --name lazar-dash -v /var/run/docker.sock:/var/run/docker.sock -v /home/pocketbase/metadata:/data --network=lazar-static monsieurlazar/lazarbase
--------------------------------------------------------------------------------
/docs/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM node:lts-alpine AS build
2 |
3 | COPY ./docs/package*.json ./
4 |
5 | RUN npm i
6 |
7 | COPY ./docs/ .
8 | RUN npm run build
9 |
10 | FROM busybox:latest AS runtime
11 | COPY --from=build /dist .
12 | CMD ["busybox", "httpd", "-f", "-v", "-p", "80"]
--------------------------------------------------------------------------------
/web/src/app.d.ts:
--------------------------------------------------------------------------------
1 | // See https://kit.svelte.dev/docs/types#app
2 | // for information about these interfaces
3 | declare global {
4 | namespace App {
5 | // interface Error {}
6 | // interface Locals {}
7 | // interface PageData {}
8 | // interface Platform {}
9 | }
10 | }
11 |
12 | export {};
13 |
--------------------------------------------------------------------------------
/docs/src/app.d.ts:
--------------------------------------------------------------------------------
1 | // See https://kit.svelte.dev/docs/types#app
2 | // for information about these interfaces
3 | declare global {
4 | namespace App {
5 | // interface Error {}
6 | // interface Locals {}
7 | // interface PageData {}
8 | // interface Platform {}
9 | }
10 | }
11 |
12 | export {};
13 |
--------------------------------------------------------------------------------
/docs/src/lib/ui/index.js:
--------------------------------------------------------------------------------
1 | import HostingCalculator from "./HostingCalculator.svelte"
2 | import Navbar from "./Navbar.svelte"
3 | import Logo from "./Logo.svelte"
4 | import Github from "./Github.svelte"
5 | import BottomBar from "./BottomBar.svelte"
6 |
7 | export { HostingCalculator, Navbar, Logo, Github, BottomBar }
8 |
--------------------------------------------------------------------------------
/docs/src/lib/ui/BottomBar.svelte:
--------------------------------------------------------------------------------
1 |
2 | © 2023 PocketBase Dashboard
3 |
4 | Crafted by
5 | Lazar
6 |
7 |
8 |
9 |
17 |
--------------------------------------------------------------------------------
/web/src/app.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 | {#if $auth.password != null}
10 |
11 | {:else}
12 |
13 |
Log in
14 | {#if $auth.error}
15 |
{$auth.error}
16 | {/if}
17 |
{
22 | if (e.key == "Enter")
23 | auth.set({
24 | password,
25 | error: null,
26 | })
27 | }}
28 | />
29 |
31 | auth.set({
32 | password,
33 | error: null,
34 | })}>Log in
36 |
37 | {/if}
38 |
39 |
40 |
90 |
--------------------------------------------------------------------------------
/web/src/routes/Counter.svelte:
--------------------------------------------------------------------------------
1 |
19 |
20 |