Property Manager — Property Management Software

Track repairs, expenses, receipts, mileage, documents, and vendors across your entire rental portfolio. Built for landlords and property managers who want a simple, self-hosted solution with real tax-time value.

Property Manager Dashboard screenshot
The Property Manager dashboard — portfolio summary, mileage deduction tracker, and open repairs at a glance.

Features Overview

🏠 Properties & Units

Manage any number of rental properties, each with one or more units. Track the tenant name, rent amount, and occupancy status per unit. Soft-delete keeps historical data intact when a property is retired.

🔧 Repairs

Log repair requests against any unit with a title, category (Plumbing, Electrical, HVAC, Appliances, Structural, Roofing, Flooring, Painting, Landscaping, Pest, Other), priority (Low → Emergency), and estimated/actual cost. Status progresses through Open → In Progress → On Hold → Completed / Cancelled — and the completion date is stamped automatically.

Filter the list by property, status, or priority. Use the inline search to find any repair by title, category, or vendor.

💰 Expenses & Receipts

Record every property-related expense with a vendor name, payment method, amount, and tax-deductibility flag. Attach one or more receipt images or PDFs per expense — files are stored on the server and viewable inline or downloadable. Filter by property, category, and year.

Supported expense categories: Repairs, Materials, Labor, Utilities, Insurance, Property Tax, Mortgage, HOA Fees, Management, Advertising, Legal, Accounting, Supplies, Other.

🚗 Mileage Log

Log every property-related drive with start/end location, trip date, and purpose. Check "Round Trip" and the app doubles the mileage automatically. The current IRS standard rate ($0.70/mile) is built in — your tax deduction is calculated on every entry and summarized per year and per property.

📁 Documents

Upload photos, PDFs, Word documents, spreadsheets, and text files (up to 50 MB each). Tag documents to a property, unit, repair, or expense. Add free-form tags (e.g. roof, 2024, permit) for easy retrieval. Images appear in a visual photo grid; non-image files appear in a sortable table.

Supported categories: Photo, Receipt, Contract, Lease Agreement, Inspection, Permit, Insurance, Invoice, Other.

👷 Vendors

Keep a contact directory of your contractors and service providers — plumbers, electricians, handymen, and more. Record each vendor's specialty, phone, email, website, license number, hourly rate, insurance status, and whether they're a preferred vendor. Filter by specialty or narrow the list to preferred or insured vendors only.

📊 Reports

Year-end tax & expense summaries in a single view. Select a tax year (and optionally filter by property) to see:

  • Total miles driven, IRS deduction amount, trip count, and a per-property breakdown
  • Total expenses, tax-deductible total, and an expense breakdown by category
  • A combined "Total Estimated Deductions" banner you can hand directly to your accountant

📊 Dashboard

At-a-glance summary cards for total properties, occupied/total units (with occupancy rate), open repairs (with emergency count highlighted), and year-to-date expenses. A mileage banner shows YTD miles and estimated IRS deduction. The dashboard also lists all open and in-progress repairs so nothing slips through.

Licensing

Property Manager is sold as a flat annual license — one license key covers one installation with no limits on properties, units, or user accounts. Every feature is included; there are no feature tiers or per-property add-ons.

Trial mode: All new installations start with a free 30-day trial of the full feature set. A banner in the app will show how many trial days remain and a link to enter your license key. When you're ready, purchase a license at the Stoxello Store.

System Requirements

Server / Host Machine

  • 64-bit Windows 10/11 or Windows Server 2019+, or any 64-bit Linux distribution (x64)
  • No .NET runtime required — the release binaries are self-contained
  • 500 MB free disk space for the application; additional space for uploaded receipts and documents
  • No external database server required — SQLite is embedded

Browser

  • Any modern browser: Chrome 90+, Edge 90+, Firefox 90+, Safari 15+
  • JavaScript must be enabled (required for Blazor Server)

Download & Installation

Download

Download the latest release from the GitHub Releases page. Each release ships self-contained binaries for Windows and Linux (no .NET runtime needed) plus a Docker image. The assets are:

  • PropertyManager-vX.Y.Z-windows-x64.zip — Windows x64
  • PropertyManager-vX.Y.Z-linux-x64.tar.gz — Linux x64
  • SHA256SUMS.txt — checksums for the archives above

Verify the download against the published checksum:

# Linux
sha256sum -c SHA256SUMS.txt --ignore-missing

# Windows (PowerShell)
Get-FileHash .\PropertyManager-vX.Y.Z-windows-x64.zip -Algorithm SHA256

Option A — Windows

  1. Extract the ZIP to a folder, for example C:\PropertyManager:
    Expand-Archive .\PropertyManager-vX.Y.Z-windows-x64.zip -DestinationPath C:\PropertyManager
  2. Run the application
    cd C:\PropertyManager
    .\RentalManager.Web.exe
  3. Open http://localhost:5000 in a browser. The first run creates the database, seeds the roles, and redirects you to the first-run setup wizard.

To listen on a different port or on all network interfaces:

$env:ASPNETCORE_URLS = "http://0.0.0.0:8080"
.\RentalManager.Web.exe

Option B — Linux

  1. Download and extract the archive to a folder, for example /opt/property-manager:
    mkdir -p /opt/property-manager && cd /opt/property-manager
    wget https://github.com/stoxello/PropertyManager-Releases/releases/latest/download/PropertyManager-vX.Y.Z-linux-x64.tar.gz
    tar -xzf PropertyManager-vX.Y.Z-linux-x64.tar.gz
    chmod +x RentalManager.Web
  2. Run the application (must have write access to the folder so the database can be created):
    ASPNETCORE_URLS=http://0.0.0.0:8080 ./RentalManager.Web
  3. Open http://localhost:8080 (or the server's address on your LAN). First run redirects to the setup wizard.

To run as a systemd service, create /etc/systemd/system/property-manager.service:

[Unit]
Description=Stoxello Property Manager
After=network.target

[Service]
WorkingDirectory=/opt/property-manager
ExecStart=/opt/property-manager/RentalManager.Web
Environment=ASPNETCORE_URLS=http://0.0.0.0:8080
Restart=always
RestartSec=3
User=property

[Install]
WantedBy=multi-user.target

Then create a dedicated non-root user that owns the folder and enable the service:

sudo useradd --system --home /opt/property-manager property
sudo chown -R property:property /opt/property-manager
sudo systemctl enable --now property-manager

Option C — Docker

A prebuilt image is published to GitHub Container Registry with X.Y.Z, X.Y, and latest tags. Run it with persistent volumes for /app/data, /app/receipts, and /app/documents:

docker run -d \
  --name property-manager \
  -p 8080:8080 \
  -v property-data:/app/data \
  -v property-receipts:/app/receipts \
  -v property-documents:/app/documents \
  ghcr.io/stoxello/property-management:latest
HTTPS: Property Manager serves plain HTTP. Put it behind a reverse proxy (Caddy, nginx, IIS, or similar) for HTTPS in production.
Data location: All application data lives in the folder the app runs from — rental_manager.db (the SQLite database), receipts/, documents/, dp-keys/ (data-protection keys), and license-machine-id.txt. Keep these files when upgrading.

First-Run Setup

On the very first launch Property Manager detects that no administrator account exists and automatically redirects every request to /account/setup.

  1. Create your Admin account
    Enter your full name, email address, and a password (minimum 8 characters, at least one uppercase letter and one digit). Click Create Account.
  2. You are now logged in as Administrator. The dashboard opens immediately — no separate login step needed.
  3. Activate your license (optional during trial)
    Navigate to Admin → License (or /account/license) in the sidebar. Enter your license key and the email address associated with your purchase, then click Activate. A green confirmation banner confirms success.
  4. Add your first property
    Click Properties & Units in the left sidebar and then Add Property.

Using the Application

Adding a Property and Its Units

  1. Go to Properties & UnitsAdd Property.
  2. Fill in the property name, address, city, state, and ZIP. Save.
  3. On the property row click the Units icon to open the units list for that property.
  4. Click Add Unit — enter the unit number, monthly rent, tenant name (if occupied), and check Occupied.

Logging a Repair

  1. Go to RepairsNew Repair.
  2. Select the property and unit, enter a descriptive title, and choose the category and priority.
  3. Optionally enter an estimated cost and vendor name. Save.
  4. As work progresses, open the repair and change the status to In Progress, On Hold, or Completed. The completion date is filled in automatically when you mark a repair complete.
  5. You can attach expenses and documents directly to a repair from its detail page.

Recording an Expense

  1. Go to ExpensesAdd Expense.
  2. Select the property, enter a description, date, amount, category, and payment method.
  3. If the expense is tax-deductible check the Tax Deductible box — it will be included in the Reports summary.
  4. To attach a receipt, save the expense first and then re-open it to use the receipt upload section.

Logging a Mileage Trip

  1. Go to Mileage LogLog Trip, or click the Log Trip button on the Dashboard banner.
  2. Select the property (and optionally the unit), enter the start and end locations, miles driven, and purpose.
  3. Check Round Trip if you drove both ways — the total miles (and deduction) will be doubled.
  4. The IRS deduction at $0.70/mile is shown immediately on save.

Uploading Documents & Photos

  1. Go to Documents.
  2. Expand the Upload Documents / Photos panel.
  3. Select a property and (optionally) link to a repair. Choose a category and add comma-separated tags.
  4. Click Choose Files to Upload — you can select multiple files at once. Supported types: images, PDF, Word, Excel, and plain text. Maximum 50 MB per file.
  5. Images appear in the photo grid below; other file types appear in the files table where they can be previewed inline or downloaded.

Running a Tax Report

  1. Go to Reports.
  2. Select the tax year. Optionally filter to a single property.
  3. The left card shows your mileage deduction summary; the right card shows your expense summary by category.
  4. The green banner at the bottom shows the combined estimated deduction — mileage plus tax-deductible expenses. Share this number with your accountant.

Administration

Managing Users

Administrators can manage user accounts at Admin → Users (only visible to users with the Admin role).

  • Add a user: Click Add User, enter their full name, email, a password, and select their role (Admin or User).
  • Edit a user: Click the edit icon on their row to change their name or role.
  • Disable a user: Toggle the Active switch on their row. Disabled users are immediately signed out and cannot log back in.

Activating or Changing Your License

  1. Go to Admin → License (or /account/license).
  2. The current status shows the licensed product, who it's licensed to, the expiry date, install seats used, and the last validation result.
  3. To activate a new key, enter it in the License Key field along with your registered email, then click Activate.
  4. To buy or renew a license, use the Stoxello Store button on the license page, or visit stoxello.com/store.

Backing Up Your Data

All application data lives in the folder the app runs from:

  • rental_manager.db — the SQLite database (all records, users, settings)
  • receipts/ and documents/ — uploaded files organized by year

You can either copy these files to a safe location, or use the built-in backup tools at Admin → Settings — download a Database Only backup or a Full Backup (.zip of the database plus all uploaded files), and restore from a .db file when needed.

Tip: For automated backups on Windows, use the Task Scheduler to run a robocopy or xcopy command nightly. On Linux, a cron job with cp or rsync works well.

Updating to a New Version

  1. Back up your data (see above).
  2. Stop the running application.
  3. Keep the data files — rental_manager.db, receipts/, documents/, dp-keys/, and license-machine-id.txt — and replace the remaining files with the new release.
  4. Start the application and verify everything loads correctly. The database schema is created automatically — no migrations are required.

Questions or issues? Email [email protected].
© 2026 Property Manager. All rights reserved.