Remove obsolete scripts and configuration files for self-hosting and database migrations

- Deleted `pnpm-workspace.yaml` as it is no longer needed.
- Removed `apply-migrations.sh` script that handled database migrations.
- Eliminated `generate-full-stack-env.mjs` script for environment variable generation.
- Deleted `selfhost-backup.sh` script for creating backups of the self-hosted environment.
- Removed `selfhost-doctor.sh` script for health checks of the self-hosted services.
- Deleted `selfhost-restore.sh` script for restoring backups in the self-hosted environment.
This commit is contained in:
Poyraz
2026-06-16 09:57:32 +03:00
parent da8c55d1ad
commit 72a0b38f3e
48 changed files with 2463 additions and 13020 deletions
+51 -98
View File
@@ -1,130 +1,83 @@
<img src="public/logo/lightLogoLong.png" height="200" alt="Neta Icon" />
# Neta - Freelancer Operating System
# Neta
[![Next.js](https://img.shields.io/badge/Next.js-16.2.7-black?style=flat-square&logo=next.js)](https://nextjs.org/)
[![React](https://img.shields.io/badge/React-19.2.7-blue?style=flat-square&logo=react)](https://react.dev/)
[![Tailwind CSS](https://img.shields.io/badge/Tailwind_CSS-4.3.0-38B2AC?style=flat-square&logo=tailwind-css)](https://tailwindcss.com/)
[![Supabase](https://img.shields.io/badge/Supabase-0.10.3-3ECF8E?style=flat-square&logo=supabase)](https://supabase.com/)
[![AI SDK](https://img.shields.io/badge/Vercel_AI_SDK-6.0.197-black?style=flat-square&logo=vercel)](https://sdk.vercel.ai/)
[![Poyraz UI](https://img.shields.io/badge/Poyraz_UI-2.1.0-indigo?style=flat-square)](https://github.com/poyrazavsever)
Neta is a freelancer operating system built with Next.js and Supabase. It manages clients, projects, tasks, finance, daily logs, analytics, AI chat, and a limited client portal.
## Overview
This repository now ships only the web application. It does not bundle Supabase, PostgreSQL, Docker Compose, installers, migration runners, or backup scripts. Bring your own Supabase project and provide the required environment variables in the deploy platform.
Neta is a comprehensive, self-hosted workspace designed specifically for freelancers. It serves as a centralized operating system to manage daily operations, clients, projects, finances, and personal performance tracking.
## Stack
Built with a focus on simplicity, security, and edge-to-edge aesthetic design, Neta allows a single user (the freelancer) to operate their entire business from one dashboard without relying on multiple third-party SaaS subscriptions.
- Next.js App Router
- React
- Tailwind CSS
- Poyraz UI
- Supabase Auth, Postgres, Storage, and RLS
- Vercel AI SDK
## Features and Modules
## Requirements
### 1. Unified Dashboard
A command center providing a tactical overview of your current performance. It tracks active revenue, task completion, and upcoming deadlines, ensuring you always know what needs immediate attention.
1. A Supabase project that already contains Neta's database schema, RLS policies, RPC functions, and storage buckets.
2. Supabase project credentials:
- Project URL
- Anon/public key
- Service role key
3. Node.js 20 or newer.
### 2. Client Management
A structured CRM to manage your client base. You can track client statuses, store communication notes, and link clients directly to ongoing projects and tasks.
See `docs/04-supabase-kurulumu.md` for the expected Supabase-side resources.
### 3. Project and Task Management
A robust pipeline for tracking project milestones and individual tasks. Features include priority assignments, status tracking, deadline management, and automated project progress calculations.
## Environment Variables
### 4. Financial Tracking
An integrated ledger to monitor income, expenses, and cash flow. It provides graphical analysis and clear tabular data of your recent transactions, allowing you to stay on top of your financial health.
Copy `.env.example` to `.env.local` for local development, or add the same values in Vercel, Coolify, Dokploy, or your hosting provider.
### 5. Journal and Performance Analytics
A dedicated journaling module to record daily mood, energy levels, and work satisfaction. This data is aggregated to provide trend analysis, helping you understand how your personal well-being correlates with your professional output.
### 6. Built-in AI Assistant
A localized AI module integrated directly into your workspace. It connects to your choice of provider (Google Gemini, OpenAI, Groq, or local Ollama instances) and can query your existing database to provide instant summaries, insights, and answers regarding your tasks and finances.
### 7. Client Portal
A restricted, read-only interface that you can share with your clients. They can log in to view the progress of their specific projects and public tasks, providing transparency without compromising your internal data security.
## Technical Architecture
Neta is engineered using modern, high-performance web technologies:
- **Frontend:** Next.js (App Router) combined with React Server Components.
- **Styling:** Tailwind CSS with a custom, bespoke design system via Poyraz UI.
- **Backend and Database:** Supabase (PostgreSQL) handling authentication, Row Level Security (RLS), and database migrations.
- **AI Integration:** Vercel AI SDK for streaming responses and tool-calling capabilities.
- **Deployment:** Fully containerized with Docker, optimized for standalone builds.
## Installation and Deployment
Neta is designed for self-hosting. It supports two Docker deployment modes:
- **Full-stack:** Neta + bundled Postgres/Auth/PostgREST/Storage.
- **App-only:** Neta connected to an existing Supabase-compatible backend.
### Prerequisites
- Docker and Docker Compose
- For app-only mode: Supabase API URL, anon key, service role key, and a direct Postgres `DATABASE_URL` for migrations
### 1-Click Installation (Recommended)
You can install Neta using the interactive setup script:
```bash
curl -fsSL https://raw.githubusercontent.com/poyrazavsever/neta/main/install.sh | bash
```env
NEXT_PUBLIC_SITE_URL=https://your-domain.com
NEXT_PUBLIC_SUPABASE_URL=https://your-project-ref.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
```
The installer asks for the deployment mode, writes a `.env` file, validates Docker Compose configuration, and starts the application. In full-stack mode it generates Supabase JWT secrets and applies Neta migrations automatically through the `neta-migrations` service.
`SUPABASE_SERVICE_ROLE_KEY` is server-only. Do not expose it with a `NEXT_PUBLIC_` prefix.
### Manual Installation
If you prefer to set up Neta manually:
1. Clone the repository: `git clone https://github.com/poyrazavsever/neta.git`
2. Navigate to the directory.
3. For full-stack mode, generate a `.env` file and run:
## Local Development
```bash
node scripts/generate-full-stack-env.mjs > .env
npm install
npm run dev
```
Open `http://localhost:3000`.
## Production Build
```bash
docker compose -f docker-compose.full.yml up -d --build
npm run build
npm run start
```
4. For app-only mode, copy `.env.example` to `.env`, fill every required value, and apply database migrations:
## Deploy
```bash
DATABASE_URL='postgresql://postgres:password@host:5432/postgres' sh ./scripts/apply-migrations.sh
```
### Vercel
5. Start the app-only Docker container:
1. Import the GitHub repository.
2. Add the environment variables from `.env.example`.
3. Deploy with the default Next.js settings.
```bash
docker compose up -d --build
```
### Coolify or Dokploy
Docker Compose intentionally fails fast when required Supabase environment values are missing.
1. Create a standard Next.js application from this GitHub repository.
2. Use the platform's normal install/build/start commands:
- Install: `npm install`
- Build: `npm run build`
- Start: `npm run start`
3. Add the environment variables from `.env.example`.
Coolify users should use `docker-compose.full.yml` for the no-external-service setup. Dokploy users should use `docker-compose.dokploy.yml`, which avoids fixed container names and host port bindings. Use `docker-compose.yml` only when connecting to an existing Supabase backend. See `docs/deployment/self-hosting.md` for the deployment checklist.
No Dockerfile or Compose file is required.
### Operations
## First Admin
For full-stack installs, run health diagnostics and backups from the repository root:
```bash
sh ./scripts/selfhost-doctor.sh
sh ./scripts/selfhost-backup.sh
```
To also verify real Auth signup and password login, run:
```bash
NETA_DOCTOR_AUTH_SMOKE=1 sh ./scripts/selfhost-doctor.sh
```
Restore requires an existing backup directory and explicit confirmation:
```bash
sh ./scripts/selfhost-restore.sh ./backups/20260101T120000Z
```
### First Administrator Account
To ensure data security, Neta is locked to a single administrator. Upon launching the application for the first time, navigate to the `/register` route to create the initial admin account. Once this account is created, public registration is permanently disabled.
After deploying against a prepared Supabase project, open `/register` once to create the first freelancer/admin account. Registration is locked after the first admin profile exists.
## License
This project is proprietary and intended for personal self-hosting.
This project is proprietary and intended for personal self-hosting with an external Supabase project.