Rebrand to Pounce, the Open Source Kanban Solution
- Rename project from "kanban" to "pounce" - Update landing page: "Pounce on your tasks" - Replace navbar icon with cat paw - Update seed hostname to pounce.catrenelle.com - Write proper README with setup instructions Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,42 +1,50 @@
|
||||
# sv
|
||||
# Pounce
|
||||
|
||||
Everything you need to build a Svelte project, powered by [`sv`](https://github.com/sveltejs/cli).
|
||||
An open source, self-hosted, multi-tenant kanban board.
|
||||
|
||||
## Creating a project
|
||||
## Tech Stack
|
||||
|
||||
If you're seeing this, you've probably already done this step. Congrats!
|
||||
|
||||
```sh
|
||||
# create a new project
|
||||
npx sv create my-app
|
||||
```
|
||||
|
||||
To recreate this project with the same configuration:
|
||||
|
||||
```sh
|
||||
# recreate this project
|
||||
npx sv create --template minimal --types ts --no-install .
|
||||
```
|
||||
|
||||
## Developing
|
||||
|
||||
Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:
|
||||
- **Frontend**: SvelteKit + Svelte 5 + Tailwind CSS v4
|
||||
- **Backend**: SvelteKit API routes + Prisma ORM
|
||||
- **Database**: PostgreSQL 16
|
||||
- **Real-time**: Socket.IO
|
||||
- **Auth**: Email/password with bcrypt + session cookies
|
||||
- **Deployment**: Docker Compose + Portainer
|
||||
|
||||
## Getting Started
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- Node.js 22+
|
||||
- PostgreSQL 16+
|
||||
|
||||
### Development
|
||||
|
||||
```sh
|
||||
npm install
|
||||
cp .env.example .env # edit DATABASE_URL as needed
|
||||
npm run db:push # sync schema to database
|
||||
npm run db:seed # seed default tenant + admin user
|
||||
npm run dev
|
||||
|
||||
# or start the server and open the app in a new browser tab
|
||||
npm run dev -- --open
|
||||
```
|
||||
|
||||
## Building
|
||||
|
||||
To create a production version of your app:
|
||||
### Docker
|
||||
|
||||
```sh
|
||||
npm run build
|
||||
docker compose up
|
||||
```
|
||||
|
||||
You can preview the production build with `npm run preview`.
|
||||
The app will be available at `http://localhost:3000`.
|
||||
|
||||
> To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment.
|
||||
### Default Credentials
|
||||
|
||||
- **Email**: admin@example.com
|
||||
- **Password**: admin123
|
||||
|
||||
## Multi-Tenancy
|
||||
|
||||
Pounce supports multiple tenants on a single instance. Each tenant is identified by hostname — map additional domains via the `tenant_hostnames` table.
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "kanban",
|
||||
"name": "pounce",
|
||||
"private": true,
|
||||
"version": "0.1.0",
|
||||
"type": "module",
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ async function main() {
|
||||
});
|
||||
|
||||
// Map hostnames to default tenant
|
||||
const hostnames = ['localhost', '127.0.0.1', 'kanban.catrenelle.com'];
|
||||
const hostnames = ['localhost', '127.0.0.1', 'pounce.catrenelle.com'];
|
||||
for (const hostname of hostnames) {
|
||||
await prisma.tenantHostname.upsert({
|
||||
where: { hostname },
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
<div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
|
||||
<div class="flex h-14 items-center justify-between">
|
||||
<a href="/" class="flex items-center gap-2 text-white font-bold text-lg">
|
||||
<svg class="w-6 h-6" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||||
<rect x="3" y="3" width="7" height="7" rx="1" />
|
||||
<rect x="14" y="3" width="7" height="4" rx="1" />
|
||||
<rect x="14" y="10" width="7" height="7" rx="1" />
|
||||
<rect x="3" y="13" width="7" height="8" rx="1" />
|
||||
<svg class="w-6 h-6" viewBox="0 0 24 24" fill="currentColor">
|
||||
<circle cx="7" cy="5" r="2.2" />
|
||||
<circle cx="12" cy="3.5" r="2.2" />
|
||||
<circle cx="17" cy="5" r="2.2" />
|
||||
<ellipse cx="12" cy="14" rx="6" ry="7" />
|
||||
</svg>
|
||||
{data.tenant?.name ?? 'Kanban'}
|
||||
{data.tenant?.name ?? 'Pounce'}
|
||||
</a>
|
||||
|
||||
<div class="flex items-center gap-3">
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
</script>
|
||||
|
||||
<svelte:head>
|
||||
<title>Kanban Board</title>
|
||||
<title>Pounce</title>
|
||||
</svelte:head>
|
||||
|
||||
<div class="flex flex-col items-center justify-center px-4 py-20">
|
||||
<h1 class="text-4xl font-bold text-gray-900 mb-4">Organize your work</h1>
|
||||
<h1 class="text-4xl font-bold text-gray-900 mb-4">Pounce on your tasks</h1>
|
||||
<p class="text-lg text-gray-600 mb-8 text-center max-w-xl">
|
||||
A collaborative Kanban board for your team. Create boards, organize tasks, and track progress in real-time.
|
||||
An open source kanban board for your team. Create boards, organize tasks, and track progress in real-time.
|
||||
</p>
|
||||
<div class="flex gap-3">
|
||||
<a
|
||||
|
||||
Reference in New Issue
Block a user