fix: emoji to icons
This commit is contained in:
@@ -29,5 +29,5 @@ h2 > a > span + span {
|
||||
}
|
||||
|
||||
h3 > a > span + span {
|
||||
@apply size-5 align-text-bottom;
|
||||
@apply size-5 align-text-top;
|
||||
}
|
||||
|
||||
@@ -105,17 +105,17 @@ DB_HOST=news-postgres # Overrides root
|
||||
|
||||
### Security
|
||||
|
||||
- ✅ Use strong, random passwords
|
||||
- ✅ Never commit `.env` files to version control
|
||||
- ✅ Use `.env.example` as template
|
||||
- ✅ Rotate secrets regularly
|
||||
- :icon{name="lucide:check"} Use strong, random passwords
|
||||
- :icon{name="lucide:check"} Never commit `.env` files to version control
|
||||
- :icon{name="lucide:check"} Use `.env.example` as template
|
||||
- :icon{name="lucide:check"} Rotate secrets regularly
|
||||
|
||||
### Organization
|
||||
|
||||
- ✅ Document custom variables
|
||||
- ✅ Group related variables
|
||||
- ✅ Use consistent naming
|
||||
- ✅ Keep defaults in root `.env`
|
||||
- :icon{name="lucide:check"} Document custom variables
|
||||
- :icon{name="lucide:check"} Group related variables
|
||||
- :icon{name="lucide:check"} Use consistent naming
|
||||
- :icon{name="lucide:check"} Keep defaults in root `.env`
|
||||
|
||||
## Generating Secrets
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ Running in `edge` mode because we're living on the edge (behind Traefik)! This t
|
||||
| `KC_DB_URL` | JDBC connection string | :icon{name="lucide:plug"} The digital umbilical cord |
|
||||
| `KC_HOSTNAME` | Public-facing URL | :icon{name="lucide:globe"} Your internet identity |
|
||||
| `KC_PROXY` | Proxy mode setting | :icon{name="lucide:drama"} Trust the middleman |
|
||||
| `KC_FEATURES` | Enabled features (docker) | 🐳 Whale hello there! |
|
||||
| `KC_FEATURES` | Enabled features (docker) | Whale hello there! |
|
||||
|
||||
## Ports & Networking
|
||||
|
||||
|
||||
@@ -199,7 +199,7 @@ A: Default is `admin`/`changeme` - check if you changed it and forgot!
|
||||
- :icon{name="lucide:sparkles"} Makes Ansible actually fun to use
|
||||
- :icon{name="lucide:palette"} Beautiful, modern interface
|
||||
- :icon{name="lucide:refresh-cw"} Task history and versioning
|
||||
- 👁️ Real-time execution logs
|
||||
- :icon{name="lucide:eye"} Real-time execution logs
|
||||
- :icon{name="lucide:target"} RBAC (Role-Based Access Control)
|
||||
- :icon{name="lucide:smile"} Open source and free
|
||||
|
||||
|
||||
@@ -222,7 +222,7 @@ The server will automatically use it for missing pages!
|
||||
- :icon{name="lucide:file-text"} Personal thoughts and experiences
|
||||
- :icon{name="lucide:wrench"} Project documentation
|
||||
- :icon{name="lucide:target"} Case studies and success stories
|
||||
- 🌟 Whatever makes your heart sing!
|
||||
- :icon{name="lucide:sparkles"} Whatever makes your heart sing!
|
||||
|
||||
## Fun Facts
|
||||
|
||||
|
||||
@@ -51,8 +51,8 @@ Path: /app/data
|
||||
|
||||
This stores:
|
||||
- :icon{name="lucide:database"} SQLite database (users, apps, messages)
|
||||
- 🖼️ Application images
|
||||
- ⚙️ Server configuration
|
||||
- :icon{name="lucide:image"} Application images
|
||||
- :icon{name="lucide:cog"} Server configuration
|
||||
|
||||
### No Exposed Port
|
||||
All access goes through Traefik at https://chat.pivoine.art - clean and secure!
|
||||
@@ -209,9 +209,9 @@ Download from:
|
||||
|
||||
- :icon{name="lucide:phone"} Desktop notifications (browser permission needed)
|
||||
- :icon{name="lucide:search"} Search through message history
|
||||
- 🗑️ Delete individual or all messages
|
||||
- :icon{name="lucide:trash"} Delete individual or all messages
|
||||
- :icon{name="lucide:users"} Manage applications and clients
|
||||
- ⚙️ Configure server settings
|
||||
- :icon{name="lucide:cog"} Configure server settings
|
||||
- :icon{name="lucide:bar-chart"} View message statistics
|
||||
|
||||
## Security Best Practices :icon{name="lucide:lock"}
|
||||
@@ -233,9 +233,9 @@ curl -X POST "https://chat.pivoine.art/message" \
|
||||
-F "title=Deployment Report" \
|
||||
-F "message=## Deploy Status
|
||||
|
||||
- ✅ Database migration
|
||||
- ✅ Frontend build
|
||||
- ✅ Backend restart
|
||||
- :icon{name="lucide:check"} Database migration
|
||||
- :icon{name="lucide:check"} Frontend build
|
||||
- :icon{name="lucide:check"} Backend restart
|
||||
- :icon{name="lucide:alert-triangle"} Cache warmup (slower than expected)
|
||||
|
||||
**Next**: Monitor performance metrics" \
|
||||
|
||||
@@ -22,8 +22,8 @@ This stack is your personal GitHub - a lightweight, powerful, self-hosted Git se
|
||||
|
||||
Gitea packs a serious punch for its size:
|
||||
- :icon{name="lucide:package"} **Git Hosting**: Unlimited private/public repositories
|
||||
- 🔀 **Pull Requests**: Full code review workflow
|
||||
- 🐛 **Issue Tracking**: Built-in project management
|
||||
- :icon{name="lucide:shuffle"} **Pull Requests**: Full code review workflow
|
||||
- :icon{name="lucide:bug"} **Issue Tracking**: Built-in project management
|
||||
- :icon{name="lucide:users"} **Organizations & Teams**: Multi-user collaboration
|
||||
- :icon{name="lucide:git-branch"} **Webhooks**: CI/CD integration ready
|
||||
- :icon{name="lucide:file-text"} **Wiki**: Documentation for your projects
|
||||
|
||||
@@ -52,7 +52,7 @@ The speed demon of data storage! Redis is your in-memory cache:
|
||||
- `sexy` → Directus cache for faster API responses
|
||||
- Perfect for session storage, rate limiting, queues
|
||||
|
||||
### 🎛️ pgAdmin 4
|
||||
### :icon{name="lucide:ethernet-port"} pgAdmin 4
|
||||
|
||||
**Container**: `pgadmin4_container`
|
||||
**Image**: `dpage/pgadmin4`
|
||||
|
||||
@@ -13,7 +13,7 @@ Dockge (pronounced "dog-ee" 🐕) is a fancy, self-hosted web UI for managing Do
|
||||
|
||||
## The Stack Captain
|
||||
|
||||
### 🎛️ Dockge
|
||||
### :icon{name="lucide:ethernet-port"} Dockge
|
||||
|
||||
**Container**: `dock_app`
|
||||
**Image**: `louislam/dockge:1`
|
||||
@@ -22,7 +22,7 @@ Dockge (pronounced "dog-ee" 🐕) is a fancy, self-hosted web UI for managing Do
|
||||
|
||||
Dockge makes Docker Compose management feel like playing with LEGO:
|
||||
- :icon{name="lucide:clipboard"} **Visual Stack Management**: See all your compose stacks at a glance
|
||||
- ✏️ **Built-in Editor**: Edit compose files right in the browser
|
||||
- :icon{name="lucide:pen"} **Built-in Editor**: Edit compose files right in the browser
|
||||
- :icon{name="lucide:rocket"} **One-Click Deploy**: Start, stop, restart with a button
|
||||
- :icon{name="lucide:bar-chart"} **Real-time Logs**: Watch your containers do their thing
|
||||
- :icon{name="lucide:file-text"} **Compose File Preview**: See what you're deploying before you deploy it
|
||||
@@ -107,12 +107,12 @@ mkdir -p /root/repos/compose
|
||||
### Managing Existing Stacks
|
||||
|
||||
From the dashboard, you can:
|
||||
- ▶️ **Start**: Fire up all containers
|
||||
- ⏸️ **Stop**: Gracefully stop everything
|
||||
- :icon{name="lucide:play"} **Start**: Fire up all containers
|
||||
- :icon{name="lucide:pause"} **Stop**: Gracefully stop everything
|
||||
- :icon{name="lucide:refresh-cw"} **Restart**: Quick bounce
|
||||
- :icon{name="lucide:file-text"} **Edit**: Change the compose file
|
||||
- :icon{name="lucide:wrench"} **Update**: Pull new images and redeploy
|
||||
- 🗑️ **Delete**: Remove stack completely
|
||||
- :icon{name="lucide:trash"} **Delete**: Remove stack completely
|
||||
|
||||
### Viewing Logs
|
||||
|
||||
@@ -314,11 +314,11 @@ services:
|
||||
## Why Choose Dockge?
|
||||
|
||||
- :icon{name="lucide:target"} **Compose-Native**: Built specifically for docker-compose
|
||||
- 🪶 **Lightweight**: Tiny footprint, fast UI
|
||||
- :icon{name="lucide:feather"} **Lightweight**: Tiny footprint, fast UI
|
||||
- :icon{name="lucide:palette"} **Beautiful**: Clean, modern interface
|
||||
- :icon{name="lucide:wrench"} **Simple**: Does one thing really well
|
||||
- :icon{name="lucide:smile"} **Free**: Open source, no enterprise upsells
|
||||
- 👨:icon{name="lucide:laptop"} **Dev-Friendly**: Doesn't hide the compose file from you
|
||||
- :icon{name="lucide:laptop"} **Dev-Friendly**: Doesn't hide the compose file from you
|
||||
|
||||
## Integration Ideas
|
||||
|
||||
@@ -353,4 +353,4 @@ Automated backups of your compose files:
|
||||
|
||||
---
|
||||
|
||||
*"The best UI is the one that gets out of your way and lets you work."* - Dockge Philosophy 🐳:icon{name="lucide:sparkles"}
|
||||
*"The best UI is the one that gets out of your way and lets you work."* - Dockge Philosophy :icon{name="lucide:sparkles"}
|
||||
|
||||
@@ -25,14 +25,14 @@ Home Assistant is your smart home's mission control:
|
||||
- :icon{name="lucide:bot"} **Powerful Automations**: If this, then that (but better!)
|
||||
- :icon{name="lucide:palette"} **Beautiful UI**: Customizable dashboards
|
||||
- :icon{name="lucide:phone"} **Mobile Apps**: Control from anywhere (iOS & Android)
|
||||
- 🗣️ **Voice Control**: Alexa, Google, Siri integration
|
||||
- :icon{name="lucide:megaphone"} **Voice Control**: Alexa, Google, Siri integration
|
||||
- :icon{name="lucide:lock-keyhole"} **Privacy First**: Your data stays home
|
||||
- 🌙 **Energy Monitoring**: Track usage and costs
|
||||
- :icon{name="lucide:eclipse"} **Energy Monitoring**: Track usage and costs
|
||||
- :icon{name="lucide:bar-chart"} **History & Analytics**: Visualize your home
|
||||
|
||||
## Configuration Breakdown
|
||||
|
||||
### Privileged Mode 🔓
|
||||
### Privileged Mode :icon{name="lucide:lock"}
|
||||
|
||||
Running in privileged mode to access:
|
||||
- USB devices (Zigbee/Z-Wave sticks)
|
||||
@@ -81,7 +81,7 @@ A: Verify timezone is set correctly - this is crucial!
|
||||
|
||||
- :icon{name="lucide:lock-keyhole"} **Strong Password**: Your home security depends on it!
|
||||
- :icon{name="lucide:globe"} **HTTPS Only**: Traefik provides SSL automatically
|
||||
- 👁️ **Two-Factor**: Enable in user profile
|
||||
- :icon{name="lucide:eye"} **Two-Factor**: Enable in user profile
|
||||
- :icon{name="lucide:key"} **API Tokens**: Use long-lived tokens, not passwords
|
||||
|
||||
## Resources
|
||||
|
||||
@@ -49,29 +49,29 @@ news/
|
||||
|
||||
### Campaign Management
|
||||
- :icon{name="lucide:mail"} Create beautiful emails with templates
|
||||
- 📅 Schedule sends for later
|
||||
- :icon{name="lucide:calendar"} Schedule sends for later
|
||||
- :icon{name="lucide:target"} Segment subscribers by tags/lists
|
||||
- :icon{name="lucide:file-text"} Preview before sending
|
||||
- :icon{name="lucide:refresh-cw"} A/B testing (coming soon™)
|
||||
|
||||
### Subscriber Management
|
||||
- 📥 Import via CSV
|
||||
- ✅ Double opt-in confirmation
|
||||
- :icon{name="lucide:upload"} Import via CSV
|
||||
- :icon{name="lucide:check"} Double opt-in confirmation
|
||||
- :icon{name="lucide:tag"} Tag and categorize
|
||||
- :icon{name="lucide:bar-chart"} View engagement history
|
||||
- :icon{name="lucide:ban"} Easy unsubscribe management
|
||||
|
||||
### Analytics Dashboard
|
||||
- :icon{name="lucide:trending-up"} Open rates
|
||||
- 👆 Click-through rates
|
||||
- 📉 Unsubscribe rates
|
||||
- :icon{name="lucide:mouse-pointer-click"} Click-through rates
|
||||
- :icon{name="lucide:chart"} Unsubscribe rates
|
||||
- :icon{name="lucide:bar-chart"} Subscriber growth over time
|
||||
- :icon{name="lucide:target"} Campaign performance
|
||||
|
||||
### Email Features
|
||||
- :icon{name="lucide:palette"} Custom HTML templates
|
||||
- :icon{name="lucide:phone"} Mobile-responsive designs
|
||||
- 🖼️ Image support
|
||||
- :icon{name="lucide:image"} Image support
|
||||
- :icon{name="lucide:link"} Link tracking
|
||||
- :icon{name="lucide:user"} Personalization ({{name}}, etc.)
|
||||
|
||||
@@ -236,17 +236,17 @@ The backend runs several automated jobs:
|
||||
## Privacy & Compliance :icon{name="lucide:lock"}
|
||||
|
||||
### GDPR Compliant
|
||||
- ✅ Double opt-in
|
||||
- ✅ Easy unsubscribe
|
||||
- ✅ Data export
|
||||
- ✅ Data deletion
|
||||
- ✅ Consent tracking
|
||||
- :icon{name="lucide:check"} Double opt-in
|
||||
- :icon{name="lucide:check"} Easy unsubscribe
|
||||
- :icon{name="lucide:check"} Data export
|
||||
- :icon{name="lucide:check"} Data deletion
|
||||
- :icon{name="lucide:check"} Consent tracking
|
||||
|
||||
### CAN-SPAM Compliant
|
||||
- ✅ Physical address in footer
|
||||
- ✅ Clear unsubscribe link
|
||||
- ✅ Opt-in records
|
||||
- ✅ "From" address accuracy
|
||||
- :icon{name="lucide:check"} Physical address in footer
|
||||
- :icon{name="lucide:check"} Clear unsubscribe link
|
||||
- :icon{name="lucide:check"} Opt-in records
|
||||
- :icon{name="lucide:check"} "From" address accuracy
|
||||
|
||||
## Performance Optimization
|
||||
|
||||
|
||||
@@ -22,9 +22,9 @@ This is your full-stack content management system! A headless CMS (Directus) pai
|
||||
|
||||
Directus is the headless CMS that doesn't make you cry:
|
||||
- :icon{name="lucide:bar-chart"} **Database-First**: Works with your existing database
|
||||
- 🎛️ **Admin Panel**: Beautiful UI out of the box
|
||||
- :icon{name="lucide:ethernet-port"} **Admin Panel**: Beautiful UI out of the box
|
||||
- :icon{name="lucide:plug"} **REST + GraphQL**: Choose your flavor
|
||||
- 🖼️ **Asset Management**: Images, videos, files - all handled
|
||||
- :icon{name="lucide:image"} **Asset Management**: Images, videos, files - all handled
|
||||
- :icon{name="lucide:users"} **User Roles**: Granular permissions
|
||||
- :icon{name="lucide:refresh-cw"} **Real-time**: WebSocket support for live updates
|
||||
- :icon{name="lucide:palette"} **Customizable**: Extensions, hooks, custom fields
|
||||
@@ -139,7 +139,7 @@ Password: Your ADMIN_PASSWORD
|
||||
|
||||
5. **Save and Create Item!**
|
||||
|
||||
## Using the Admin Panel 🎛️
|
||||
## Using the Admin Panel :icon{name="lucide:ethernet-port"}
|
||||
|
||||
### Content Management
|
||||
|
||||
@@ -164,13 +164,13 @@ Password: Your ADMIN_PASSWORD
|
||||
|
||||
**Field Types**:
|
||||
- :icon{name="lucide:file-text"} Text (String, Text, Markdown)
|
||||
- 🔢 Numbers (Integer, Float, Decimal)
|
||||
- 📅 Dates (Date, DateTime, Time)
|
||||
- ✅ Booleans & Toggles
|
||||
-- :icon{name="lucide:arrow-up-0-1"} Numbers (Integer, Float, Decimal)
|
||||
- :icon{name="lucide:calendar"} Dates (Date, DateTime, Time)
|
||||
- :icon{name="lucide:check"} Booleans & Toggles
|
||||
- :icon{name="lucide:palette"} JSON & Code
|
||||
- :icon{name="lucide:link"} Relations (O2M, M2O, M2M)
|
||||
- 🖼️ Files & Images
|
||||
- 📍 Geolocation
|
||||
- :icon{name="lucide:image"} Files & Images
|
||||
-- :icon{name="lucide:map-pin"} Geolocation
|
||||
|
||||
## API Usage :icon{name="lucide:plug"}
|
||||
|
||||
|
||||
@@ -58,9 +58,9 @@ The coordinator:
|
||||
**Image**: `signoz/signoz-otel-collector:v0.129.6`
|
||||
|
||||
The data pipeline:
|
||||
- 📥 **Receives**: Traces, metrics, logs from apps
|
||||
- :icon{name="lucide:download"} **Receives**: Traces, metrics, logs from apps
|
||||
- :icon{name="lucide:refresh-cw"} **Processes**: Transforms and enriches data
|
||||
- 📤 **Exports**: Sends to ClickHouse
|
||||
- :icon{name="lucide:upload"} **Exports**: Sends to ClickHouse
|
||||
- :icon{name="lucide:target"} **Sampling**: Smart data collection
|
||||
- :icon{name="lucide:plug"} **Flexible**: Supports many data formats
|
||||
|
||||
@@ -69,9 +69,9 @@ The data pipeline:
|
||||
**Containers**: `trace_migrator_sync` & `trace_migrator_async`
|
||||
|
||||
The database janitors:
|
||||
- 🗂️ **Migrations**: Set up database schema
|
||||
- :icon{name="lucide:folder-input"} **Migrations**: Set up database schema
|
||||
- :icon{name="lucide:refresh-cw"} **Updates**: Apply schema changes
|
||||
- 🏗️ **Initialization**: Prepare ClickHouse
|
||||
- :icon{name="lucide:square-dashed-mouse-pointer"} **Initialization**: Prepare ClickHouse
|
||||
|
||||
## Architecture Overview
|
||||
|
||||
@@ -161,11 +161,11 @@ docker compose up -d
|
||||
```
|
||||
|
||||
This starts:
|
||||
- ✅ ClickHouse (database)
|
||||
- ✅ ZooKeeper (coordination)
|
||||
- ✅ Schema migrations (database setup)
|
||||
- ✅ SigNoz (UI and query engine)
|
||||
- ✅ OTel Collector (data collection)
|
||||
- :icon{name="lucide:check"} ClickHouse (database)
|
||||
- :icon{name="lucide:check"} ZooKeeper (coordination)
|
||||
- :icon{name="lucide:check"} Schema migrations (database setup)
|
||||
- :icon{name="lucide:check"} SigNoz (UI and query engine)
|
||||
- :icon{name="lucide:check"} OTel Collector (data collection)
|
||||
|
||||
### 3. Access SigNoz
|
||||
```
|
||||
@@ -245,15 +245,15 @@ span.end();
|
||||
### Services View
|
||||
See all your microservices:
|
||||
- :icon{name="lucide:bar-chart"} Request rate
|
||||
- ⏱️ Latency (P50, P90, P99)
|
||||
- ❌ Error rate
|
||||
- :icon{name="lucide:timer"} Latency (P50, P90, P99)
|
||||
- :icon{name="lucide:x"} Error rate
|
||||
- :icon{name="lucide:flame"} Top endpoints
|
||||
|
||||
### Traces View
|
||||
Debug individual requests:
|
||||
- :icon{name="lucide:search"} Search by service, operation, duration
|
||||
- :icon{name="lucide:trending-up"} Visualize request flow
|
||||
- ⏱️ See exact timings
|
||||
- :icon{name="lucide:timer"} See exact timings
|
||||
- 🐛 Find errors with full context
|
||||
|
||||
### Metrics View (Dashboards)
|
||||
@@ -305,8 +305,8 @@ Limit: 10
|
||||
Auto-generated service map shows:
|
||||
- :icon{name="lucide:link"} Which services call which
|
||||
- :icon{name="lucide:bar-chart"} Request volumes
|
||||
- ⏱️ Latencies between services
|
||||
- ❌ Error rates
|
||||
- :icon{name="lucide:timer"} Latencies between services
|
||||
- :icon{name="lucide:x"} Error rates
|
||||
|
||||
## Instrumenting Different Languages
|
||||
|
||||
|
||||
@@ -22,9 +22,9 @@ Umami is your self-hosted, privacy-focused alternative to Google Analytics! It's
|
||||
|
||||
Umami is analytics done right:
|
||||
- :icon{name="lucide:lock"} **Privacy-First**: No cookies, no tracking pixels, no creepy stuff
|
||||
- 🇪🇺 **GDPR Compliant**: By design, not as an afterthought
|
||||
- :icon{name="lucide:euro"} **GDPR Compliant**: By design, not as an afterthought
|
||||
- :icon{name="lucide:bar-chart"} **Beautiful Dashboards**: Real-time, clean, insightful
|
||||
- 🌍 **Multi-Site**: Track unlimited websites
|
||||
- :icon{name="lucide:globe"} **Multi-Site**: Track unlimited websites
|
||||
- :icon{name="lucide:users"} **Team Features**: Invite team members
|
||||
- :icon{name="lucide:phone"} **Events Tracking**: Custom events and goals
|
||||
- :icon{name="lucide:palette"} **Simple Script**: Just one line of JavaScript
|
||||
@@ -37,18 +37,18 @@ Umami is analytics done right:
|
||||
- :icon{name="lucide:user"} **Unique Visitors**: Who's new, who's returning
|
||||
- :icon{name="lucide:globe"} **Referrers**: Where traffic comes from
|
||||
- :icon{name="lucide:phone"} **Devices**: Desktop vs Mobile vs Tablet
|
||||
- 🌍 **Countries**: Geographic distribution
|
||||
- :icon{name="lucide:globe"} **Countries**: Geographic distribution
|
||||
- :icon{name="lucide:monitor"} **Browsers**: Chrome, Firefox, Safari, etc.
|
||||
- :icon{name="lucide:laptop"} **Operating Systems**: Windows, Mac, Linux, etc.
|
||||
- :icon{name="lucide:file"} **Pages**: Most popular content
|
||||
|
||||
### Advanced Features
|
||||
- :icon{name="lucide:target"} **Custom Events**: Track buttons, forms, videos
|
||||
- ⏱️ **Time on Site**: Engagement metrics
|
||||
- :icon{name="lucide:timer"} **Time on Site**: Engagement metrics
|
||||
- :icon{name="lucide:bar-chart"} **Real-time Data**: Live visitor updates
|
||||
- 📅 **Date Ranges**: Custom time periods
|
||||
- :icon{name="lucide:calendar"} **Date Ranges**: Custom time periods
|
||||
- :icon{name="lucide:search"} **Filters**: Drill down into data
|
||||
- 📤 **Export Data**: CSV downloads
|
||||
- :icon{name="lucide:upload"} **Export Data**: CSV downloads
|
||||
- :icon{name="lucide:link"} **Share Links**: Public dashboard links
|
||||
- :icon{name="lucide:palette"} **Themes**: Light/Dark mode
|
||||
|
||||
@@ -231,9 +231,9 @@ umami.track('Social Share', {
|
||||
## Dashboard Features :icon{name="lucide:bar-chart"}
|
||||
|
||||
### Overview
|
||||
- 👁️ Real-time visitor count
|
||||
- :icon{name="lucide:eye"} Real-time visitor count
|
||||
- :icon{name="lucide:trending-up"} Views & visitors today
|
||||
- 🕐 Average time on site
|
||||
- :icon{name="lucide:clock"} Average time on site
|
||||
- :icon{name="lucide:refresh-cw"} Bounce rate
|
||||
|
||||
### Realtime View
|
||||
@@ -244,9 +244,9 @@ Watch visitors as they browse:
|
||||
- Live count
|
||||
|
||||
### Reports
|
||||
- 📅 Custom date ranges
|
||||
- :icon{name="lucide:calendar"} Custom date ranges
|
||||
- :icon{name="lucide:bar-chart"} Page comparisons
|
||||
- 🌍 Geographic heatmaps
|
||||
- :icon{name="lucide:globe"} Geographic heatmaps
|
||||
- :icon{name="lucide:phone"} Device breakdowns
|
||||
- :icon{name="lucide:search"} Referrer analysis
|
||||
|
||||
@@ -289,18 +289,18 @@ Anyone with the link can view stats (no login needed)!
|
||||
## Privacy Features :icon{name="lucide:lock"}
|
||||
|
||||
### What Umami Does NOT Track
|
||||
- ❌ Personal information
|
||||
- ❌ Cookies (beyond session)
|
||||
- ❌ IP addresses (optional hashing)
|
||||
- ❌ Cross-site tracking
|
||||
- ❌ Fingerprinting
|
||||
- :icon{name="lucide:x"} Personal information
|
||||
- :icon{name="lucide:x"} Cookies (beyond session)
|
||||
- :icon{name="lucide:x"} IP addresses (optional hashing)
|
||||
- :icon{name="lucide:x"} Cross-site tracking
|
||||
- :icon{name="lucide:x"} Fingerprinting
|
||||
|
||||
### What Umami DOES Track
|
||||
- ✅ Page views (anonymized)
|
||||
- ✅ Referrers
|
||||
- ✅ Device types (generic)
|
||||
- ✅ Countries (city-level optional)
|
||||
- ✅ Custom events
|
||||
- :icon{name="lucide:check"} Page views (anonymized)
|
||||
- :icon{name="lucide:check"} Referrers
|
||||
- :icon{name="lucide:check"} Device types (generic)
|
||||
- :icon{name="lucide:check"} Countries (city-level optional)
|
||||
- :icon{name="lucide:check"} Custom events
|
||||
|
||||
### GDPR Compliance
|
||||
Umami is GDPR-compliant by default:
|
||||
@@ -357,9 +357,9 @@ curl -X POST https://umami.pivoine.art/api/send \
|
||||
Default setup works great! No optimization needed.
|
||||
|
||||
### For Medium Sites (10k-100k/month)
|
||||
- ✅ Enable database indexes (auto-created)
|
||||
- ✅ Regular database maintenance
|
||||
- ✅ Monitor disk space
|
||||
- :icon{name="lucide:check"} Enable database indexes (auto-created)
|
||||
- :icon{name="lucide:check"} Regular database maintenance
|
||||
- :icon{name="lucide:check"} Monitor disk space
|
||||
|
||||
### For Large Sites (100k+/month)
|
||||
- :icon{name="lucide:rocket"} Increase PostgreSQL memory
|
||||
@@ -479,7 +479,7 @@ Install via plugin or add to theme's `header.php`:
|
||||
- :icon{name="lucide:smile"} **Free**: No limits, no upsells
|
||||
- :icon{name="lucide:rocket"} **Fast**: Lightweight script
|
||||
- :icon{name="lucide:dumbbell"} **Reliable**: Self-hosted stability
|
||||
- 🌍 **Ethical**: Do the right thing
|
||||
- :icon{name="lucide:globe"} **Ethical**: Do the right thing
|
||||
|
||||
## Advanced Features
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ Vaultwarden is your self-hosted password manager - a lightweight, Rust-powered a
|
||||
|
||||
Vaultwarden is your digital security blanket:
|
||||
- :icon{name="lucide:lock-keyhole"} **Password Vault**: Store unlimited passwords
|
||||
- 🗂️ **Secure Notes**: Credit cards, identities, documents
|
||||
- :icon{name="lucide:folder-input"} **Secure Notes**: Credit cards, identities, documents
|
||||
- :icon{name="lucide:refresh-cw"} **Sync Everywhere**: Desktop, mobile, browser extensions
|
||||
- :icon{name="lucide:users"} **Sharing**: Securely share with family/team
|
||||
- :icon{name="lucide:key"} **2FA Support**: TOTP, YubiKey, Duo
|
||||
@@ -43,20 +43,20 @@ Vaultwarden is your digital security blanket:
|
||||
|
||||
Both use the same client apps - just different servers!
|
||||
|
||||
## Features That Matter 🌟
|
||||
## Features That Matter :icon{name="lucide:sparkles"}
|
||||
|
||||
### Password Management
|
||||
- :icon{name="lucide:lock-keyhole"} **Unlimited Passwords**: No caps, no limits
|
||||
- :icon{name="lucide:search"} **Search**: Find credentials instantly
|
||||
- :icon{name="lucide:folder"} **Folders**: Organize by category
|
||||
- :icon{name="lucide:tag"} **Tags**: Multiple ways to organize
|
||||
- ⭐ **Favorites**: Quick access to common items
|
||||
- :icon{name="lucide:star"} **Favorites**: Quick access to common items
|
||||
- :icon{name="lucide:file-text"} **Notes**: Attach notes to any item
|
||||
|
||||
### Secure Storage Types
|
||||
- :icon{name="lucide:key"} **Login**: Username + password combos
|
||||
- 💳 **Card**: Credit/debit card info
|
||||
- 🆔 **Identity**: Personal info, addresses
|
||||
- :icon{name="lucide:credit-card"} **Card**: Credit/debit card info
|
||||
- :icon{name="lucide:id-card"} **Identity**: Personal info, addresses
|
||||
- :icon{name="lucide:file"} **Secure Note**: Encrypted text
|
||||
|
||||
### Security Features
|
||||
@@ -207,7 +207,7 @@ Or use keyboard shortcut: `Ctrl+Shift+L`
|
||||
- Search by name, URL, username, or notes
|
||||
- Filter by type, folder, or favorites
|
||||
|
||||
## Admin Panel 🎛️
|
||||
## Admin Panel :icon{name="lucide:ethernet-port"}
|
||||
|
||||
Access at: `https://vault.pivoine.art/admin`
|
||||
|
||||
@@ -217,9 +217,9 @@ Access at: `https://vault.pivoine.art/admin`
|
||||
- :icon{name="lucide:users"} View all users
|
||||
- :icon{name="lucide:lock-keyhole"} Disable/delete users
|
||||
- :icon{name="lucide:mail"} Resend invitations
|
||||
- 🗑️ Delete accounts
|
||||
- :icon{name="lucide:trash"} Delete accounts
|
||||
- :icon{name="lucide:bar-chart"} View diagnostics
|
||||
- ⚙️ Configure settings
|
||||
- :icon{name="lucide:cog"} Configure settings
|
||||
|
||||
### Useful Admin Tasks
|
||||
|
||||
@@ -257,23 +257,23 @@ Shows config, health checks, versions
|
||||
## Security Best Practices :icon{name="lucide:shield"}
|
||||
|
||||
### Master Password
|
||||
- ✅ Use a passphrase: `correct-horse-battery-staple`
|
||||
- ✅ At least 14+ characters
|
||||
- ✅ Unique (not used elsewhere)
|
||||
- ✅ Write it down physically
|
||||
- ❌ Don't store digitally
|
||||
- ❌ Don't share it
|
||||
- :icon{name="lucide:check"} Use a passphrase: `correct-horse-battery-staple`
|
||||
- :icon{name="lucide:check"} At least 14+ characters
|
||||
- :icon{name="lucide:check"} Unique (not used elsewhere)
|
||||
- :icon{name="lucide:check"} Write it down physically
|
||||
- :icon{name="lucide:x"} Don't store digitally
|
||||
- :icon{name="lucide:x"} Don't share it
|
||||
|
||||
### Two-Factor Authentication
|
||||
- ✅ Enable 2FA immediately
|
||||
- ✅ Save recovery codes
|
||||
- ✅ Use authenticator app (not SMS)
|
||||
- ✅ Consider hardware key (YubiKey)
|
||||
- :icon{name="lucide:check"} Enable 2FA immediately
|
||||
- :icon{name="lucide:check"} Save recovery codes
|
||||
- :icon{name="lucide:check"} Use authenticator app (not SMS)
|
||||
- :icon{name="lucide:check"} Consider hardware key (YubiKey)
|
||||
|
||||
### Vault Hygiene
|
||||
- :icon{name="lucide:refresh-cw"} Regular security reports
|
||||
- :icon{name="lucide:search"} Update weak passwords
|
||||
- 🗑️ Remove old accounts
|
||||
- :icon{name="lucide:trash"} Remove old accounts
|
||||
- :icon{name="lucide:mail"} Use unique emails when possible
|
||||
- :icon{name="lucide:lock-keyhole"} Never reuse passwords
|
||||
|
||||
@@ -428,11 +428,11 @@ Organize shared items:
|
||||
## Why Self-Host Your Passwords?
|
||||
|
||||
- :icon{name="lucide:lock"} **Full Control**: Your data, your server
|
||||
- 🕵️ **Privacy**: No third-party access
|
||||
- :icon{name="lucide:hat-glasses"} **Privacy**: No third-party access
|
||||
- :icon{name="lucide:dollar-sign"} **Cost**: Free premium features
|
||||
- :icon{name="lucide:rocket"} **Performance**: Local network speed
|
||||
- :icon{name="lucide:shield"} **Security**: You control the security
|
||||
- 🌍 **Independence**: Not dependent on cloud service
|
||||
- :icon{name="lucide:globe"} **Independence**: Not dependent on cloud service
|
||||
- :icon{name="lucide:bar-chart"} **Transparency**: Open source, auditable
|
||||
|
||||
## Resources
|
||||
|
||||
@@ -27,7 +27,7 @@ WG-Easy makes WireGuard actually easy:
|
||||
- :icon{name="lucide:zap"} **WireGuard**: Modern, fast, secure protocol
|
||||
- :icon{name="lucide:bar-chart"} **Traffic Stats**: See bandwidth usage
|
||||
- :icon{name="lucide:lock"} **Encrypted**: Industry-standard crypto
|
||||
- 🌍 **Route All Traffic**: Or split-tunnel
|
||||
- :icon{name="lucide:globe"} **Route All Traffic**: Or split-tunnel
|
||||
- :icon{name="lucide:rocket"} **Performance**: Faster than OpenVPN
|
||||
|
||||
## WireGuard: The Modern VPN Protocol
|
||||
@@ -37,7 +37,7 @@ WG-Easy makes WireGuard actually easy:
|
||||
- :icon{name="lucide:lock"} **Secure**: State-of-the-art cryptography
|
||||
- :icon{name="lucide:phone"} **Battery Friendly**: Less power consumption
|
||||
- :icon{name="lucide:refresh-cw"} **Roaming**: Seamless connection switching
|
||||
- 🐧 **Linux Kernel**: Built into Linux 5.6+
|
||||
- :icon{name="lucide:sparkles"} **Linux Kernel**: Built into Linux 5.6+
|
||||
- :icon{name="lucide:target"} **Simple**: Easier to audit and configure
|
||||
|
||||
## Configuration Breakdown
|
||||
@@ -206,9 +206,9 @@ PersistentKeepalive = 25
|
||||
### Full Tunnel (All Traffic)
|
||||
|
||||
**Default behavior** - all internet traffic goes through VPN:
|
||||
- ✅ Complete privacy
|
||||
- ✅ Bypass geo-blocks
|
||||
- ✅ Secure public WiFi
|
||||
- :icon{name="lucide:check"} Complete privacy
|
||||
- :icon{name="lucide:check"} Bypass geo-blocks
|
||||
- :icon{name="lucide:check"} Secure public WiFi
|
||||
- :icon{name="lucide:alert-triangle"} Slightly slower (routing through your server)
|
||||
|
||||
### Split Tunnel (Selective Routing)
|
||||
@@ -229,9 +229,9 @@ AllowedIPs = 10.0.0.0/24 # Only home network
|
||||
## Traffic Statistics :icon{name="lucide:bar-chart"}
|
||||
|
||||
Web UI shows for each client:
|
||||
- 📥 **Download**: Data received
|
||||
- 📤 **Upload**: Data sent
|
||||
- 🕐 **Last Seen**: When last connected
|
||||
- :icon{name="lucide:upload"} **Download**: Data received
|
||||
- :icon{name="lucide:download"} **Upload**: Data sent
|
||||
- :icon{name="lucide:clock"} **Last Seen**: When last connected
|
||||
- :icon{name="lucide:trending-up"} **Charts**: Bandwidth over time
|
||||
|
||||
## Common Use Cases
|
||||
@@ -248,13 +248,13 @@ You (anywhere) → VPN → Home Network → NAS, Printer, etc.
|
||||
```
|
||||
Access devices as if you're home.
|
||||
|
||||
### 3. Bypass Geo-Restrictions 🌍
|
||||
### 3. Bypass Geo-Restrictions :icon{name="lucide:globe"}
|
||||
```
|
||||
Your Location → VPN (Server Country) → Streaming Service
|
||||
```
|
||||
Appear to be in server's location.
|
||||
|
||||
### 4. Privacy from ISP 🕵️
|
||||
### 4. Privacy from ISP :icon{name="lucide:hat-glasses"}
|
||||
```
|
||||
Your Device → Encrypted Tunnel → Your Server → Internet
|
||||
```
|
||||
@@ -478,8 +478,8 @@ docker compose restart
|
||||
- :icon{name="lucide:lock"} **Full Control**: Your server, your rules
|
||||
- :icon{name="lucide:dollar-sign"} **Cost Effective**: No monthly fees
|
||||
- :icon{name="lucide:rocket"} **Performance**: Direct to your server
|
||||
- 🕵️ **Privacy**: No third-party logging
|
||||
- 🌍 **Flexibility**: Use any server location
|
||||
- :icon{name="lucide:hat-glasses"} **Privacy**: No third-party logging
|
||||
- :icon{name="lucide:globe"} **Flexibility**: Use any server location
|
||||
- :icon{name="lucide:bar-chart"} **Transparency**: You know what's happening
|
||||
- :icon{name="lucide:hammer"} **Customization**: Configure exactly as needed
|
||||
|
||||
|
||||
Reference in New Issue
Block a user