Open Source Invoicing & Finance App. Created by Kugie
Summit is a modern, self-hostable invoicing and financial management application designed for freelancers, small businesses, and agencies. Built with Next.js, Drizzle ORM, and Tailwind CSS, it provides the essential tools to manage your finances efficiently.
Maintained by Kugie.app
We've tried several tools including Akaunting (not familiar with PHP), InvoiceNinja (limited functionality), Crater, and Twenty CRM (consume too much CPU and RAM). We just want a tool that helps us create quotations, send invoices through email, and automate payments.
This open-source project is proudly maintained by the team at Kugie.app. We believe in the power of open source and welcome contributions from the community!
Whether you want to fix a bug, add a feature, or improve documentation, feel free to:
We use Railway for seamless deployment of the entire application stack:
This infrastructure setup provides a cost-effective, reliable deployment that scales with usage while keeping all components within the same platform for easier management.
Summit is fully compatible with Xendit webhooks to automate your payment workflow:
To set up Xendit webhooks:
/api/webhooks/xendit)XENDIT_CALLBACK_VERIFICATION_TOKEN is properly set in your environment variablesFollow these steps to get the Summit application running locally.
Clone the repository:
git clone https://github.com/kugie-app/summit.git
cd summit
Install dependencies:
pnpm install
Set up environment variables:
Copy the .env.example file to .env and fill in the required values.
cp .env.example .env
See the Environment Variables section below for details.
Set up the database:
Make sure your PostgreSQL server is running and the connection string in your .env file is correct. Then, run the database migrations:
pnpm run generate && pnpm run push
Note: generate and push are suitable for development. For production, use drizzle-kit generate and apply migrations manually or via a migration tool.
Run the development server:
pnpm run dev
Open your browser: Navigate to http://localhost:3000.
Create a .env file in the root of the project and add the following variables:
# Database
DATABASE_URL="postgresql://user:password@host:port/database?sslmode=require" # Your PostgreSQL connection string
# Authentication (NextAuth.js)
# Generate a secret: openssl rand -base64 32
NEXTAUTH_SECRET="YOUR_NEXTAUTH_SECRET"
NEXTAUTH_URL="http://localhost:3000" # Use your production URL in deployment
# Client Portal Authentication Secret (Used for client portal JWTs)
# Generate a strong secret
CLIENT_AUTH_SECRET="YOUR_STRONG_CLIENT_PORTAL_SECRET"
# User Signup Control
# Set to "1" to disable new user signups
NEXT_PUBLIC_DISABLE_SIGNUP="0"
# Email (Resend)
RESEND_API_KEY="YOUR_RESEND_API_KEY"
RESEND_FROM_EMAIL="[email protected]" # Email address verified with Resend
# Payment Gateway (Xendit)
XENDIT_SECRET_KEY="YOUR_XENDIT_SECRET_KEY"
XENDIT_CALLBACK_VERIFICATION_TOKEN="YOUR_XENDIT_CALLBACK_TOKEN" # Set this in Xendit dashboard
# File Storage (Minio/S3)
MINIO_ENDPOINT="localhost"
MINIO_PORT="9000"
MINIO_USE_SSL="false"
MINIO_ACCESS_KEY="minioadmin"
MINIO_SECRET_KEY="minioadmin"
MINIO_BUCKET_NAME="summit"
# Cron Job Security
# A secret key to authenticate requests to the cron job endpoint
CRON_API_KEY="YOUR_SECURE_CRON_API_KEY"
# Application URL (Used for generating links in emails etc.)
NEXT_PUBLIC_APP_URL="http://localhost:3000" # Use your production URL in deployment
This project uses Drizzle ORM with PostgreSQL.
DATABASE_URL in the .env file.pnpm db:push
pnpm db:generate
Last Stable Version: 1.0.0
docker pull geraldKugie/summit:1.0.0
docker run -p 3000:3000 -e <ENV_KEY>=<ENV_VALUE> geraldKugie/summit:1.0.0
Notes:
-e <ENV_KEY>=<ENV_VALUE>, or if you still want to containerize the app, use the docker compose up command for easier variable injection..env file are not implemented yet, but will be implemented in the future.Contributions are welcome! We appreciate any help, from bug fixes and feature enhancements to documentation improvements.
Please read our Contributing Guidelines for details on our code of conduct and the process for submitting pull requests.
You can also reach out to the maintainers at Kugie.app.
This project is licensed under the MIT LICENSE
Content type
Image
Digest
sha256:b8c8dc6eb…
Size
70.9 MB
Last updated
over 1 year ago
docker pull geraldkugie/summit:1.0.0