Step-by-step guide to run LogisticsX without Docker.
git clone https://github.com/suxrobgm/logistics-app.git
cd logistics-appcd src/Client/Logistics.OfficeApp
bun install
cd ../../..Connect to PostgreSQL and create the required databases:
CREATE DATABASE master_logisticsx;
CREATE DATABASE default_logisticsx;Or via command line:
psql -U postgres -c "CREATE DATABASE master_logisticsx;"
psql -U postgres -c "CREATE DATABASE default_logisticsx;"Edit src/Presentation/Logistics.API/appsettings.json:
{
"ConnectionStrings": {
"MasterDatabase": "Host=localhost;Port=5432;Database=master_logisticsx;Username=postgres;Password=YOUR_PASSWORD",
"DefaultTenantDatabase": "Host=localhost;Port=5432;Database=default_logisticsx;Username=postgres;Password=YOUR_PASSWORD"
},
"TenantsDatabaseConfig": {
"DatabaseNameTemplate": "{tenant}_logisticsx",
"DatabaseHost": "localhost",
"DatabaseUserId": "postgres",
"DatabasePassword": "YOUR_PASSWORD"
}
}Also update src/Presentation/Logistics.IdentityServer/appsettings.json with the same connection string.
Run the database migrator to create tables and seed initial data:
# Using the provided script
scripts/seed-databases.cmd
# Or manually
dotnet run --project src/Presentation/Logistics.DbMigratorOpen separate terminals for each service:
Terminal 1 - API:
dotnet run --project src/Presentation/Logistics.API
# Runs on https://localhost:7000Terminal 2 - Identity Server:
dotnet run --project src/Presentation/Logistics.IdentityServer
# Runs on https://localhost:7001Terminal 3 - Admin App:
dotnet run --project src/Presentation/Logistics.AdminApp
# Runs on https://localhost:7002Terminal 4 - Office App:
cd src/Client/Logistics.Angular
bun run start:tms
# Runs on https://localhost:7003Terminal 5 - Customer Portal (Optional):
cd src/Client/Logistics.Angular
bun run start:customer
# Runs on https://localhost:7004Or use the provided scripts:
scripts/run-api.cmd
scripts/run-identity.cmd
scripts/run-adminapp.cmd
scripts/run-tms.cmd
scripts/run-customer.cmdFor payment testing:
-
Get your test keys from Stripe Dashboard
-
Update
src/Presentation/Logistics.API/appsettings.json:{ "Stripe": { "PublishableKey": "pk_test_...", "SecretKey": "sk_test_...", "WebhookSecret": "" } } -
Run Stripe CLI for webhook forwarding:
scripts/listen-stripe-webhook.cmd
-
Copy the webhook secret from Stripe CLI output and update
WebhookSecret
| Application | URL | Credentials |
|---|---|---|
| API (Swagger) | https://localhost:7000/swagger | - |
| Identity Server | https://localhost:7001 | - |
| Admin App | https://localhost:7002 | admin@test.com / Test12345# |
| Office App | https://localhost:7003 | owner@test.com / Test12345# |
| Role | Password | App Access | |
|---|---|---|---|
| Super Admin | admin@test.com | Test12345# | Admin App |
| Owner | owner@test.com | Test12345# | Office App |
| Manager | manager1@test.com | Test12345# | Office App |
| Dispatcher | dispatcher1@test.com | Test12345# | Office App |
| Driver | driver1@test.com | Test12345# | Driver Mobile App |
Trust the development certificate:
dotnet dev-certs https --trustCheck what's using the port:
# Windows
netstat -ano | findstr :7000
# macOS/Linux
lsof -i :7000- Verify PostgreSQL is running
- Check connection string credentials
- Ensure database exists
cd src/Client/Logistics.OfficeApp
bun install --force- Docker Development - Simpler setup with Aspire
- Test Credentials - Full credentials reference