You need to be logged in to access this page. Please log in to continue

User Guide Title

User Guide Overview Title: User Guide Overview Text
English User Manual

Complete user guide in English with step-by-step instructions.

Open English Manual
Nederlandse Gebruikershandleiding

Volledige gebruikershandleiding in het Nederlands met stap-voor-stap instructies.

Open Nederlandse Handleiding
Manual Contents
  • Contents Getting Started
  • Contents Dashboard
  • Contents Customers
  • Contents Suppliers
  • Contents Products
  • Contents Invoices
  • Contents Reports
  • Contents Users
  • Contents Settings
  • Contents Troubleshooting

Docker Title

Docker Overview Title: Docker Overview Text
Step 1: Build Docker Image

Build Instructions

Option A: Using Powershell Script
# Navigate to project root
cd C:\Path\To\WebPlanetFinance

# Run the build script
.\build-docker.ps1
Option B: Manual Docker Build
# Build the Docker image
docker build -t financewebplanet:latest .

# Build with version information
docker build --build-arg VERSION=1.0.0 --build-arg BUILD_DATE=$(Get-Date -Format "yyyy-MM-dd") --build-arg GIT_COMMIT=$(git rev-parse HEAD) -t financewebplanet:latest .
Step 2: Run Docker Container
Option A: Using Docker Compose (Recommended)
# Start the application
docker-compose up -d

# View logs
docker-compose logs -f

# Stop the application
docker-compose down
Option B: Using Docker Run
# Run the container
docker run -d --name financewebplanet \
  -p 8080:8080 \
  -v financewebplanet-data:/app/data \
  -e ASPNETCORE_ENVIRONMENT=Production \
  financewebplanet:latest

# View logs
docker logs -f financewebplanet
Step 3: Access Application

Access Instructions

Docker Management
Command Description
docker ps List Running Containers
docker images List Docker Images
docker logs financewebplanet View Container Logs
docker stop financewebplanet Stop Container
docker restart financewebplanet Restart Container
docker exec -it financewebplanet /bin/bash Access Container Shell

Vscode Docker Title

Vscode Overview Title: Vscode Overview Text
Step 1: Install Extensions

Required Extensions:

  • Docker - Microsoft (ms-azuretools.vscode-docker)
  • C# Dev Kit - Microsoft (ms-dotnettools.csdevkit)
  • C# - Microsoft (ms-dotnettools.csharp)
# Install via VS Code command palette:
Ctrl+Shift+P → Extensions: Install Extensions

# Or via command line:
code --install-extension ms-azuretools.vscode-docker
code --install-extension ms-dotnettools.csdevkit
code --install-extension ms-dotnettools.csharp
Step 2: Open Project
  1. Open Project Step1
  2. Open Project Step2
  3. Open Project Step3
Step 3: Docker Tasks Vscode
Build Image Vscode:
  1. Build Step1
  2. Build Step2
  3. Build Step3
Run Container Vscode:
  1. Run Step1
  2. Run Step2
  3. Run Step3
Step 4: Debugging Docker

Debugging Instructions

Note: Debugging Note

Prerequisites Title

System Requirements
Windows
  • Windows 10/11 (64-bit)
  • WSL 2 enabled
  • Hyper-V support
  • 4 GB RAM minimum (8 GB recommended)
macOS / Linux
  • macOS 10.15+ or Linux kernel 3.10+
  • 64-bit processor
  • 4 GB RAM minimum (8 GB recommended)
  • 10 GB free disk space
Required Software
Software Version Download Link Purpose
Docker Desktop 4.0+ docker.com Containerization
Visual Studio Code 1.80+ code.visualstudio.com Code Editor
.NET 9.0 SDK 9.0+ dotnet.microsoft.com Development Sdk
Git 2.30+ git-scm.com Version Control

Plesk Deployment Title

Plesk Overview Title: Plesk Overview Text
Step 1: Plesk Prerequisites
  • Plesk Requirement 1
  • Plesk Requirement 2
  • Plesk Requirement 3
  • Plesk Requirement 4
Step 2: Github Setup
Ssh Keys Setup

Ssh Keys Description

# Generate SSH key on Plesk server
ssh-keygen -t rsa -b 4096 -C "your-email@example.com"

# Copy public key
cat ~/.ssh/id_rsa.pub

Add Ssh Key Github

Step 3: Clone Repository

Clone Description

# Navigate to domains directory
cd /var/www/vhosts/yourdomain.com/

# Clone the repository
git clone git@github.com:wnijkamp/WebPlanetFinance.git

# Navigate to project
cd WebPlanetFinance
Step 4: Build Docker Plesk

Docker Build Description

# Build the Docker image
docker build -t financewebplanet:latest .

# Or with versioning
docker build \
  --build-arg VERSION=$(git describe --tags --always) \
  --build-arg BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") \
  --build-arg GIT_COMMIT=$(git rev-parse HEAD) \
  -t financewebplanet:latest .
Step 5: Environment Config

Env Config Description

# Create production environment file
cp .env.example .env.production

# Edit configuration
nano .env.production
Important Settings:
  • ASPNETCORE_ENVIRONMENT=Production
  • Database Connection: Configure SQLite or external database
  • HTTPS Settings: Configure SSL certificates
  • Security Keys: Generate secure keys for production
Step 6: Docker Compose Plesk

Compose Setup Description

# Create production docker-compose file
cp docker-compose.yml docker-compose.production.yml

# Edit for production settings
nano docker-compose.production.yml
Sample Production Compose:
version: '3.8'
services:
  web:
    build: .
    ports:
      - "8080:8080"
    environment:
      - ASPNETCORE_ENVIRONMENT=Production
      - ASPNETCORE_URLS=http://+:8080
    volumes:
      - ./data:/app/data
      - ./logs:/app/logs
    restart: unless-stopped
    networks:
      - financeapp

networks:
  financeapp:
    driver: bridge
Step 7: Deploy Application
# Start the application
docker-compose -f docker-compose.production.yml up -d

# Verify deployment
docker-compose -f docker-compose.production.yml ps
docker-compose -f docker-compose.production.yml logs -f
Step 8: Plesk Integration
Proxy Setup

Proxy Description

  1. Plesk Step 1
  2. Plesk Step 2
  3. Plesk Step 3
  4. Plesk Step 4
Nginx Config
location / {
  proxy_pass http://localhost:8080;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto $scheme;
}
Step 9: Ssl Setup

Ssl Description

  1. Ssl Step 1
  2. Ssl Step 2
  3. Ssl Step 3
Step 10: Maintenance Commands
Command Description
docker-compose -f docker-compose.production.yml restart Restart Application
docker-compose -f docker-compose.production.yml logs -f View Logs
docker system prune -a Cleanup Docker
git pull origin main && docker-compose -f docker-compose.production.yml up -d --build Update Application
Backup Strategy
Backup Important:
  • Backup Database
  • Backup Uploads
  • Backup Config
# Create backup script
#!/bin/bash
BACKUP_DIR="/var/backups/financewebplanet"
DATE=$(date +%Y%m%d_%H%M%S)

# Backup database
cp ./data/finance.db $BACKUP_DIR/finance_$DATE.db

# Backup configuration
tar -czf $BACKUP_DIR/config_$DATE.tar.gz .env.production docker-compose.production.yml

SMTP Email Setup Guide

What's This? Configure email settings to automatically send invoices to customers via email.
Quick Setup (5 Minutes)
Step 1: Access SMTP Settings
  1. Log in as administrator
  2. Navigate to: Admin → Settings → SMTP Email Settings
  3. Or go directly to: /Admin/Settings/Smtp
Step 2: Configure Your SMTP Server

Choose your email provider:

Settings:
✓ Enable SMTP Email Sending: ON
SMTP Host: smtp.gmail.com
Port: 587
Username: your-email@gmail.com
Password: [Your Gmail App Password]
✓ Enable SSL/TLS: ON
From Email: your-email@gmail.com
From Name: Your Company Name
Important: Gmail requires an App Password, not your regular password. Create App Password →

Settings:
✓ Enable SMTP Email Sending: ON
SMTP Host: smtp.office365.com
Port: 587
Username: your-email@company.com
Password: [Your O365 Password]
✓ Enable SSL/TLS: ON
From Email: your-email@company.com
From Name: Your Company Name

Settings:
✓ Enable SMTP Email Sending: ON
SMTP Host: mail.yourdomain.com
Port: 587 (or as provided)
Username: [Your SMTP Username]
Password: [Your SMTP Password]
✓ Enable SSL/TLS: Usually ON
From Email: noreply@yourdomain.com
From Name: Your Company Name

Contact your hosting provider for SMTP server details.

Step 3: Test Your Configuration
  1. After entering settings, click "Test Connection" button at the bottom
  2. Wait for the result:
    • ✅ Success: "SMTP connection successful!"
    • ❌ Failure: Check error message and verify settings
  3. Fix any errors before proceeding
Step 4: Send Your First Invoice Email
  1. Go to Invoices list
  2. Open any invoice (Draft or Approved status)
  3. Click "Send Invoice"
  4. Enter customer email address
  5. Click Confirm
How It Works

When you send an invoice:

  1. Invoice is marked as Sent
  2. Professional HTML email is generated with invoice details
  3. Email is sent to customer via your SMTP server
  4. Action is logged in the audit trail
  5. Invoice processing continues even if email fails
What Customers Receive

Customers receive a professional HTML email containing:

  • Invoice number
  • Total amount and currency
  • Customer name
  • Professional formatting
  • Your company name as sender
Monitor Email Activity

Track all email operations in the audit logs:

  1. Navigate to: Admin → Audit Logs
  2. Filter by Entity Name: "Invoice"
  3. Look for actions:
    • EmailSent - Email sent successfully
    • EmailFailed - Email failed to send
    • EmailError - Error during sending
Troubleshooting

Possible causes:
  • Incorrect host or port
  • Wrong username/password
  • Firewall blocking SMTP port
  • Gmail requires App Password (not regular password)
  • SSL/TLS setting incorrect
Solutions:
  • Double-check all settings
  • Try different port (587 vs 465)
  • Toggle SSL/TLS setting
  • Check provider documentation
  • Review audit logs for detailed error

Check:
  • Customer's spam/junk folder
  • "From Email" is not blocked/blacklisted
  • Email address spelling is correct
  • Audit logs show "EmailSent" (not "EmailFailed")
Security Note: SMTP passwords are currently stored in the database. For production use, consider implementing encryption using the existing DataEncryptionService.
Next Steps:
  • Configure SMTP settings in Admin panel
  • Test the connection
  • Send a test invoice
  • Verify email received
  • Monitor activity in audit logs

Troubleshooting Title

Common Causes:
  • Insufficient Disk Space
  • Network Connectivity Issues
  • Docker Daemon Not Running
Solutions:
# Clean up Docker
docker system prune -a

# Restart Docker Desktop
# Check Docker daemon status
docker version

Check Logs:
# Check container logs
docker logs financewebplanet

# Check container status
docker ps -a
Common Issues:
  • Port Already In Use
  • Permission Issues
  • Invalid Configuration

Optimization Tips:
  • Increase Docker Memory
  • Use Ssd Storage
  • Close Unnecessary Apps
  • Update Docker Desktop
Monitor Resources:
# Monitor container resource usage
docker stats financewebplanet

# Check system resources
docker system df
Need Help: Contact Support