
Summit Finance
Modern invoicing and financial management, designed for small businesses.
minio-console
railwayapp-templates/minio-console
Just deployed
MinIO
minio/minio:latest
Just deployed
/data
summit
kugie-app/summit
Just deployed
Slack Webhook
railwayapp/function-bun:1.2.10
Just deployed
Postgres
railwayapp-templates/postgres-ssl:16
Just deployed
/var/lib/postgresql/data
Summit Finance
Quick Start Deployment Instructions
Deploy Summit to Railway with our one-click template and get your invoicing system running in under 3 minutes.
Prerequisites
Before deploying, make sure you have:
- A Railway account (create one at railway.app if needed)
- A Resend account for email capabilities (highly recommended)
- A Xendit account for payment processing (required for invoice payments)
- Slack webhook URL (optional, for payment notifications)
Step 1: One-Click Deployment
- Click the "Deploy to Railway" button on our repository
- Railway will automatically set up the necessary services:
- PostgreSQL database
- MinIO storage (for file uploads)
- Web application
Step 2: Configure Essential Environment Variables
After deployment, you'll need to add some environment variables:
Email Configuration (Highly Recommended)
- Create a Resend account if you don't have one
- Get your API key from the Resend dashboard
- Add to Railway environment variables:
RESEND_API_KEY=your_resend_api_key [email protected] RESEND_FROM_NAME=your-sender-name
Payment Processing (Required for Invoice Payments)
- Create a Xendit account if you don't have one
- Get your API keys from the Xendit dashboard
- Add to Railway environment variables:
XENDIT_SECRET_KEY=your_xendit_secret_key XENDIT_CALLBACK_VERIFICATION_TOKEN=your_xendit_callback_token
Payment Notifications (Optional)
To receive payment notifications in Slack:
SLACK_WEBHOOK_URL=your_slack_webhook_url
Step 3: Set Up File Uploads
File uploads won't work immediately after deployment. Follow these steps to enable them:
- Find the MinIO service in your Railway project
- Navigate to the MinIO Console URL (provided in the service details)
- Log in with the credentials shown in the environment variables
- Create a new access key:
- Go to "Access Keys" in the left sidebar
- Click "Create new access key"
- Save both the Access Key and Secret Key
- Return to your Summit application in Railway
- Update the environment variables with your new MinIO credentials:
MINIO_ACCESS_KEY=your_generated_access_key MINIO_SECRET_KEY=your_generated_secret_key
- Restart the application service
Step 4: First Login
- Once deployed, click the "Open App" button in Railway
- Create your admin account at the registration page
- Set up your company profile in the settings
Additional Configuration
Customize Your Domain (Optional)
- In Railway, go to your Summit app service
- Navigate to the "Settings" tab
- Under "Domains", add your custom domain
- Update your DNS settings as instructed
Setup Guides
How to Set Up Xendit Integration
- Create a Xendit account if you don't have one
- Complete the account verification process
- Navigate to Settings > API Keys in your Xendit Dashboard
- Click "Generate Secret Key" and give your key a name (e.g., "Summit Integration")
- Choose the appropriate permissions (you'll need at least "Payment" permissions)
- Click "Generate Key"
- Copy your Secret Key (it starts with "xnd_" followed by "production" for live keys or "development" for test keys)
- Go to Settings > Webhooks in your Xendit Dashboard
- Find the "Webhook verification token" section
- Copy your verification token
- Add both these values to your Summit environment variables:
XENDIT_SECRET_KEY=your_copied_secret_key XENDIT_CALLBACK_VERIFICATION_TOKEN=your_webhook_verification_token
How to Set Up a Slack Webhook
- Go to api.slack.com/apps and sign in to your Slack account
- Click "Create New App" and choose "From scratch"
- Enter a name for your app (e.g., "Summit Notifications") and select your workspace
- On the left sidebar, click on "Incoming Webhooks"
- Toggle "Activate Incoming Webhooks" to On
- Click "Add New Webhook to Workspace"
- Select the channel where you want to receive notifications
- Click "Allow" to authorize the app
- Copy the Webhook URL that appears on the next page
- Add this URL as
SLACK_WEBHOOK_URL
in your Summit environment variables
How to Create a Resend Account
- Visit resend.com and sign up for an account
- Verify your email address
- Navigate to the API Keys section in your dashboard
- Click "Create API Key"
- Give your key a descriptive name (e.g., "Summit App")
- Select the appropriate permissions (usually "Full Access" for a new setup)
- Click "Add" to generate the key
- Copy your API key immediately (you'll only see it once)
- Add this key as
RESEND_API_KEY
in your Summit environment variables - Make sure to also set:
[email protected] RESEND_FROM_NAME=your-sender-name
- For
RESEND_FROM_EMAIL
, use an email address you've verified with Resend
How to Create MinIO Access Keys
- After deployment, find your MinIO service in Railway
- Access the MinIO Console URL from your Railway dashboard
- Log in using the credentials in your environment variables
- In the MinIO Console, click on "Access Keys" in the left sidebar
- Click "Create access key"
- You can specify a custom access key or let MinIO generate one
- Save both the Access Key and Secret Key shown (you'll only see these once)
- Add these as
MINIO_ACCESS_KEY
andMINIO_SECRET_KEY
in your Summit environment variables - Restart your application service to apply the changes
Troubleshooting
- Email not working? Verify your Resend API key and ensure your sender email is verified in Resend.
- File uploads fail? Double-check your MinIO access key configuration.
- Payment processing issues? Ensure your Xendit account is properly verified and that you're using the correct API keys (development vs. production).
- Webhook verification failing? Confirm you've copied the correct Xendit callback verification token.
- Database connection issues? Railway automatically manages your database, but you may need to restart the service if problems persist.
For additional help, check the GitHub repository or reach out to the team at Kugie.app.
Template Content
minio-console
railwayapp-templates/minio-consoleMinIO
minio/minio:latestsummit
kugie-app/summitSlack Webhook
ghcr.io/railwayapp/function-bun:1.2.10