Property management app
Find a file
Ruidy 9b2510460a
Some checks are pending
CI / checks (push) Waiting to run
feat: store invoice PDFs in minio
2026-03-20 23:58:57 +01:00
.github/workflows Feat/stripe integration (#50) 2025-11-21 15:47:01 +01:00
assets update deps 2025-06-23 19:02:48 +02:00
cmd/cron feat/stripe integration (#48) 2025-10-19 15:48:59 +02:00
docs improve layout 2024-11-25 14:58:18 +01:00
internal feat: store invoice PDFs in minio 2026-03-20 23:58:57 +01:00
pkg move cron code to pkg 2025-03-23 23:00:02 +01:00
scripts Raw 34 enable payments (#35) 2025-01-24 17:30:35 +01:00
thoughts/shared Feat/stripe integration (#50) 2025-11-21 15:47:01 +01:00
.air.toml feat/stripe integration (#48) 2025-10-19 15:48:59 +02:00
.env.example chore: wire APP_OPENAI_MODEL and upgrade Go/deps 2026-02-18 18:32:01 +01:00
.gitignore feat(i18n): add language toggle and localize views 2026-01-09 16:09:20 -04:00
.golangci.yml feat(logging): add slog-based structured logging 2025-09-12 12:17:22 -04:00
AGENTS.md chore: wire APP_OPENAI_MODEL and upgrade Go/deps 2026-02-18 18:32:01 +01:00
docker-compose.dev.yml chore: wire APP_OPENAI_MODEL and upgrade Go/deps 2026-02-18 18:32:01 +01:00
Dockerfile chore: wire APP_OPENAI_MODEL and upgrade Go/deps 2026-02-18 18:32:01 +01:00
Dockerfile.dev chore: wire APP_OPENAI_MODEL and upgrade Go/deps 2026-02-18 18:32:01 +01:00
go.mod feat: store invoice PDFs in minio 2026-03-20 23:58:57 +01:00
go.sum feat: store invoice PDFs in minio 2026-03-20 23:58:57 +01:00
main.go feat: store invoice PDFs in minio 2026-03-20 23:58:57 +01:00
Makefile feat(i18n): add language toggle and localize views 2026-01-09 16:09:20 -04:00
README.md feat: store invoice PDFs in minio 2026-03-20 23:58:57 +01:00

RentEase

Smart property management for short and midterm rentals: ingest bookings from multiple sources, keep owners and guests in sync, and turn payments into clean financial reporting.

RentEase Logo

Features

  • Invoice management: Create and track invoices for each stay.
  • Activity reports: Export booking and payment reports for owners and accountants.
  • Multi-platform sync: Consolidate bookings from different channels.
  • Stripe automation (optional): Pull card payments from Stripe, validate webhooks, and trigger manual syncs when needed.
  • PDF generation: Produce guest-ready invoices and summaries.

Visuals

RentEase Screenshot

Quick Start

Prerequisites

  • Go (go.mod targets 1.25.4; use Go 1.22+ in practice)
  • Docker + Docker Compose (for the recommended dev stack)
  • PostgreSQL 14+ (Docker Compose starts one automatically)
git clone https://github.com/rjNemo/rentease.git
cd rentease
make dev

This starts the app on http://localhost:8000 with hot reload and a local Postgres instance.

Run locally without Docker

git clone https://github.com/rjNemo/rentease.git
cd rentease
go mod download
cp .env.example .env    # create this file using the Configuration section below
go run .

Set APP_PORT (defaults to 4200) to change the listening port when running locally.

Configuration

Configuration is driven by environment variables (parsed with the APP_ prefix). Minimum required variables:

APP_DATABASE_URL=postgres://user:pass@localhost:5432/rentease?sslmode=disable
APP_ADMIN=admin@example.com
APP_ADMIN_SECRET=choose-a-strong-password
APP_API_KEY=your-api-key
APP_SECRET_KEY=signing-secret
APP_SESSION_SECRET=session-secret
APP_ORIGINS=http://localhost:8000
# Optional
APP_PORT=8000
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_OPENAI_MODEL=gpt-5-nano
APP_STRIPE_SECRET_KEY=
APP_STRIPE_WEBHOOK_SECRET=
APP_SENTRY_DSN=
APP_MINIO_ENDPOINT=
APP_MINIO_ACCESS_KEY=
APP_MINIO_SECRET_KEY=
APP_MINIO_BUCKET=
APP_MINIO_USE_SSL=false
APP_INVOICE_SHARE_URL_TTL=168h

Stripe values can be left blank for manual payment entry only. When provided, webhooks are received at /webhooks/stripe and a manual sync is available at POST /api/stripe/sync (API key protected). MinIO values are optional unless you want invoice generation; when configured, invoice PDFs are uploaded to the configured bucket and a presigned share URL is stored in the database.

Usage

  • Start the stack (make dev) and open http://localhost:8000.
  • Default dev credentials (from docker-compose.dev.yml):
    • admin@example.com & supersecret.
  • Create bookings, issue invoices, and review payments from the dashboard.

Development

  • make dev — run the dev stack with hot reload on :8000.
  • make test — run go test ./....
  • make format — generate templ files and format Go + templ sources.
  • make lint — run golangci-lint.
  • make run — build and run the production image locally.
  • make stop — shut down the dev stack.

Tech Stack

  • Go backend with PostgreSQL
  • Templ for server-rendered components
  • htmx for dynamic interactions with minimal JavaScript
  • GORM for database access
  • Stripe integration for payment syncing

Project Layout

  • internal/service/booking — booking lifecycle, items, reporting, PDF generation.
  • internal/service/payment — manual payments plus Stripe sync and webhook handling.
  • internal/view — templ components (generate _templ.go files locally).

Roadmap

Track planned work and known issues on the project board.

Contributing

Issues and pull requests are welcome! To propose a change:

  1. Fork the repository.
  2. Create a feature branch (git checkout -b feature/amazing-idea).
  3. Run the test suite and linters (make test, make lint).
  4. Open a PR describing your change and any setup notes.

Support

Need help or found a bug? Please open an issue in this repository with as much context as possible (logs, steps, and expected behavior).

License

Distributed under the MIT License. See LICENSE.md for more information.

Status

Active development.