| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Zero-config developer tools. One click to install. One click to run.
⚠️ Warning Most Code generated By AI.
| Main Dashboard | Running Tool | Tool Settings | Dark Mode |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
┌─────────────────────────────────────────────────────────────┐ │ 🛠️ ForgeDesk [⚙️] [🌙] │ ├─────────────────────────────────────────────────────────────┤ │ [All] [📧 Email] [🔍 Search] [🗄️ Database] [📦 Storage] │ ├─────────────────────────────────────────────────────────────┤ │ │ │ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │ │ │ 📧 Mailpit │ │ 🗄️ MySQL │ │ 🚀 Redis │ │ │ │ ● Running │ │ ○ Stopped │ │ ● Running │ │ │ │ Port: 8025 │ │ Port: 3306 │ │ Port: 6379 │ │ │ │ [Open] [Stop] │ │ [Start] │ │ [Open] [Stop] │ │ │ └───────────────┘ └───────────────┘ └───────────────┘ │ │ │ │ ┌───────────────┐ ┌───────────────┐ │ │ │ 🐘 PostgreSQL │ │ 🦀 RustFS │ │ │ │ ○ Not Installed│ │ ○ Not Installed│ │ │ │ Port: 5432 │ │ Port: 9000 │ │ │ │ [Install] │ │ [Install] │ │ │ └───────────────┘ └───────────────┘ │ │ │ ├─────────────────────────────────────────────────────────────┤ │ 🐳 Docker: Connected │ 2 running │ v0.1.0 │ └─────────────────────────────────────────────────────────────┘
| Tool | Description | Default Ports | Credentials |
|---|---|---|---|
| 📧 Mailpit | Email testing for developers | SMTP: 1025, Web: 8025 | - |
| 📧 MailHog | Classic email testing tool | SMTP: 1026, Web: 8026 | - |
| Tool | Description | Default Ports | Credentials |
|---|---|---|---|
| 🦀 RustFS | S3-compatible object storage | API: 9000 | rustfsadmin / rustfsadmin |
| 📦 MinIO | S3-compatible object storage | API: 9000, Console: 9001 | minioadmin / minioadmin |
| Note: MinIO maintenance announced to end in 2026. RustFS is included as a forward-looking alternative. |
| Tool | Description | Default Ports | Credentials |
|---|---|---|---|
| 🗄️ MySQL | Relational database | 3306 | root / root |
| 🐘 PostgreSQL | Advanced SQL database | 5432 | postgres / postgres |
| 🍃 MongoDB | Document database for modern apps | 27017 | - |
| Tool | Description | Default Ports | Credentials |
|---|---|---|---|
| ⚡ Redis | In-memory data store | 6379 | - |
| Tool | Description | Default Ports | Credentials |
|---|---|---|---|
| 🔍 Meilisearch | Fast, typo-tolerant search engine | 7700 | masterKey |
| 🔎 Elasticsearch | Search and analytics engine | HTTP: 9200, Transport: 9300 | - |
| Tool | Description | Default Ports | Credentials |
|---|---|---|---|
| 🐰 RabbitMQ | Message broker for async communication | AMQP: 5672, Web: 15672 | guest / guest |
| 📨 Kafka | Distributed event streaming platform | Broker: 9092, Controller: 9093 | - |
| Tool | Description | Default Ports | Credentials |
|---|---|---|---|
| 🔐 Keycloak | Identity and access management | 8180 | admin / admin |
| Tool | Description | Default Ports | Credentials |
|---|---|---|---|
| ☁️ LocalStack | AWS cloud services emulator (S3, SQS, SNS, DynamoDB, Lambda) | Gateway: 4566 | test / test |
| Tool | Description | Default Ports | Credentials |
|---|---|---|---|
| 🔥 Prometheus | Metrics and alerting toolkit | 9090 | - |
| 📈 Grafana | Visualization and dashboards | 3000 | admin / admin |
| Tool | Description | Default Ports | Credentials |
|---|---|---|---|
| 🔧 Adminer | Universal database management UI | 8080 | - |
| 🐘 pgAdmin | PostgreSQL management UI | 5050 | admin@admin.com / admin |
| 🍃 Mongo Express | MongoDB web admin interface | 8081 | admin / pass |
| ⚡ Redis Commander | Redis management web UI | 8082 | - |
| 📊 Kafka UI | Web UI for Apache Kafka | 8083 | - |
Once tools are running, use these connection strings in your applications:
# Mailpit SMTP
smtp://localhost:1025
# MailHog SMTP
smtp://localhost:1026
# Redis
redis://localhost:6379
# MySQL
mysql://root:root@localhost:3306/dev
# PostgreSQL
postgresql://postgres:postgres@localhost:5432/dev
# MongoDB
mongodb://localhost:27017
# RabbitMQ
amqp://guest:guest@localhost:5672
# Meilisearch
http://localhost:7700 (Master Key: masterKey)
# Elasticsearch
http://localhost:9200
# RustFS S3
http://rustfsadmin:rustfsadmin@localhost:9000
# MinIO S3
http://minioadmin:minioadmin@localhost:9000
# Kafka
localhost:9092
# LocalStack (AWS Services)
AWS_ENDPOINT_URL=http://localhost:4566
AWS_ACCESS_KEY_ID=test
AWS_SECRET_ACCESS_KEY=test
# Keycloak
http://localhost:8180 (admin / admin)
# Prometheus
http://localhost:9090
# Grafana
http://localhost:3000 (admin / admin)If you plan to run RustFS and MinIO at the same time, change one of the host ports in Settings to avoid a 9000 clash.
Docker mode (container ↔ container): Put your app and MySQL on the same Docker network and use the MySQL container name as host (e.g., mysql:3306). Attach with docker network connect devtools <your_app_container> or share the network in compose:
networks:
devtools:
external: true
services:
app:
networks: [devtools]Host mode (container ↔ host): Use host.docker.internal:3306 or your host IP when MySQL runs on the host. Ensure MySQL binds to 0.0.0.0 and your firewall allows the port.
Proxy/tunnel (optional): Only needed when networks cannot be shared. Use HAProxy/SSH/WireGuard to bridge isolated networks; otherwise skip the proxy.
# Install dependencies
npm install
# Run in development mode
npm run tauri dev
# Run backend tests
cd src-tauri && cargo test# Build for production
npm run tauri build| Platform | Format |
|---|---|
| macOS | .dmg, .app |
| Windows | .msi, .exe |
| Linux | .deb, .AppImage |
The project includes comprehensive tests for the Rust backend:
# Run all tests
cd src-tauri && cargo test
# Run tests with output
cd src-tauri && cargo test -- --nocapture
# Run specific test module
cd src-tauri && cargo test tools::tests
cd src-tauri && cargo test database_testsdeveloper-tools/
├── src/ # Svelte frontend
│ ├── routes/ # SvelteKit routes
│ └── lib/
│ ├── components/ # Svelte components
│ ├── stores/ # State management
│ └── types/ # TypeScript types
│
├── src-tauri/ # Rust backend
│ └── src/
│ ├── lib.rs # Tauri commands
│ ├── docker.rs # Docker integration
│ ├── database.rs # SQLite storage
│ ├── error.rs # Error types
│ └── tools/ # Tool definitions
│ ├── mod.rs # Tool registry
│ ├── mailpit.rs # Mailpit tool
│ ├── mysql.rs # MySQL tool
│ ├── postgres.rs # PostgreSQL tool
│ ├── redis.rs # Redis tool
│ ├── minio.rs # MinIO tool
│ └── tests.rs # Tool tests
│
└── docs/
└── screenshots/ # App screenshots
Screenshots can be captured in two ways:
# Run the screenshot helper (interactive prompts)
./scripts/screenshots.sh
# Or show manual instructions only
./scripts/screenshots.sh manualThe script will guide you through capturing each required screenshot.
Note: tauri-driver only works on Linux. On macOS/Windows, the script uses native screenshot tools with interactive prompts.
Recommended dimensions: 1200x800 pixels
┌─────────────────┐ IPC ┌─────────────────┐
│ Svelte Frontend │ ◄──────────► │ Rust Backend │
└─────────────────┘ └─────────────────┘
│
▼
┌────────────────────────────┐
│ Docker API │
│ (via Bollard library) │
└────────────────────────────┘
│
▼
┌────────────────────────────┐
│ Docker Containers │
│ (MySQL, Redis, etc.) │
└────────────────────────────┘
Want to add a new tool like MongoDB, RabbitMQ, or Meilisearch? Follow these steps:
Create a new file src-tauri/src/tools/mongodb.rs:
use super::{Tool, ToolCategory, ToolPort, ToolEnvVar};
pub fn definition() -> Tool {
Tool {
id: "mongodb".to_string(),
name: "MongoDB".to_string(),
description: "Document database for modern applications".to_string(),
category: ToolCategory::Database,
icon: "🍃".to_string(),
image: "mongo:7".to_string(),
// Define ports
ports: vec![
ToolPort {
name: "MongoDB".to_string(),
host_port: 27017,
container_port: 27017,
protocol: "tcp".to_string(),
},
],
// Environment variables (optional)
env_vars: vec![
// Add if authentication is needed:
// ToolEnvVar {
// name: "MONGO_INITDB_ROOT_USERNAME".to_string(),
// value: "root".to_string(),
// },
// ToolEnvVar {
// name: "MONGO_INITDB_ROOT_PASSWORD".to_string(),
// value: "root".to_string(),
// },
],
// Volume for data persistence
volumes: vec![
("mongodb-data".to_string(), "/data/db".to_string()),
],
// Custom command (optional, use None for default)
command: None,
// Web UI URL (None if no web interface)
web_url: None,
// Connection string template
connection_string: Some("mongodb://localhost:27017".to_string()),
// Default credentials (for display in UI)
default_credentials: None, // or Some(("username", "password"))
}
}Edit src-tauri/src/tools/mod.rs:
// Add the module
mod mongodb;
// In the get_all_tools() function, add:
pub fn get_all_tools() -> Vec<Tool> {
vec![
mailpit::definition(),
mysql::definition(),
postgres::definition(),
redis::definition(),
minio::definition(),
mongodb::definition(), // Add this line
]
}Add to src-tauri/src/tools/tests.rs:
#[test]
fn test_mongodb_definition() {
let tool = super::mongodb::definition();
assert_eq!(tool.id, "mongodb");
assert_eq!(tool.category, ToolCategory::Database);
assert!(!tool.ports.is_empty());
}# Run tests
cd src-tauri && cargo test
# Run the app to see your new tool
npm run tauri dev| Field | Type | Description |
|---|---|---|
| id | String | Unique identifier (lowercase, no spaces) |
| name | String | Display name |
| description | String | Short description |
| category | ToolCategory | Email, Database, Cache, Search, Storage, Queue |
| icon | String | Emoji icon |
| image | String | Docker image (e.g., redis:alpine) |
| ports | Vec | Port mappings |
| env_vars | Vec | Environment variables |
| volumes | Vec<(String, String)> | Volume name → container path |
| command | Option | Custom container command |
| web_url | Option | URL pattern for web UI (use {port} placeholder) |
| connection_string | Option | Connection string template |
| default_credentials | Option<(String, String)> | Default username/password |
Here are some popular tools you might want to add:
// RabbitMQ (Message Queue)
Tool {
id: "rabbitmq",
image: "rabbitmq:3-management",
ports: [(5672, "AMQP"), (15672, "Web UI")],
web_url: Some("http://localhost:15672"),
default_credentials: Some(("guest", "guest")),
}
// Meilisearch (Search Engine)
Tool {
id: "meilisearch",
image: "getmeili/meilisearch:latest",
ports: [(7700, "HTTP API")],
web_url: Some("http://localhost:7700"),
env_vars: [("MEILI_ENV", "development")],
}
// Elasticsearch
Tool {
id: "elasticsearch",
image: "elasticsearch:8.11.0",
ports: [(9200, "HTTP"), (9300, "Transport")],
env_vars: [
("discovery.type", "single-node"),
("xpack.security.enabled", "false"),
],
}
// Adminer (Database Web UI)
Tool {
id: "adminer",
image: "adminer:latest",
ports: [(8080, "Web UI")],
web_url: Some("http://localhost:8080"),
}MIT
| Back | FazBrowse Home | New Git URL |