Complete documentation refactoring with 57 service docs

- Refactored README.md, getting-started.md, quick-reference.md
- Enhanced setup-homelab.sh with 9-step automated process
- Created services-overview.md with all stacks
- Added comprehensive documentation for 57 services in docs/service-docs/
- All services include: overview, configuration, resources, educational content
- Coverage: Core, Infrastructure, Dashboards, Media, Media-Extended, Home Assistant, Productivity, Utilities, Monitoring, Development stacks
- Educational focus with links to tutorials, videos, and guides
This commit is contained in:
kelinfoxy
2026-01-12 18:03:12 -05:00
parent 906e6008ea
commit cba45556c7
69 changed files with 24404 additions and 1522 deletions

View File

@@ -0,0 +1,183 @@
# PostgreSQL - Database Services
## Table of Contents
- [Overview](#overview)
- [What is PostgreSQL?](#what-is-postgresql)
- [Why Use PostgreSQL?](#why-use-postgresql)
- [Configuration in AI-Homelab](#configuration-in-ai-homelab)
- [Official Resources](#official-resources)
- [Database Instances](#database-instances)
## Overview
**Category:** Relational Database
**Docker Image:** [postgres](https://hub.docker.com/_/postgres)
**Default Stack:** `development.yml`
**Ports:** 5432 (internal)
## What is PostgreSQL?
PostgreSQL is an advanced open-source relational database. It's more feature-rich than MySQL/MariaDB, with better support for complex queries, JSON, full-text search, and extensions. Many consider it the best open-source database.
### Key Features
- **ACID Compliant:** Reliable transactions
- **JSON Support:** Native JSON/JSONB
- **Extensions:** PostGIS, pg_trgm, etc.
- **Full-Text Search:** Built-in FTS
- **Complex Queries:** Advanced SQL
- **Replication:** Streaming replication
- **Performance:** Excellent for complex queries
- **Free & Open Source:** PostgreSQL license
## Why Use PostgreSQL?
1. **Feature-Rich:** More features than MySQL
2. **Standards Compliant:** SQL standard
3. **JSON Support:** Native JSON queries
4. **Extensions:** Powerful ecosystem
5. **Reliability:** ACID compliant
6. **Performance:** Great for complex queries
7. **Community:** Strong development
## Configuration in AI-Homelab
AI-Homelab uses separate PostgreSQL instances for different applications.
## Official Resources
- **Website:** https://www.postgresql.org
- **Documentation:** https://www.postgresql.org/docs
- **Docker Hub:** https://hub.docker.com/_/postgres
## Database Instances
### GitLab Database (gitlab-postgres)
```yaml
gitlab-postgres:
image: postgres:14
container_name: gitlab-postgres
restart: unless-stopped
networks:
- traefik-network
environment:
- POSTGRES_DB=gitlabhq_production
- POSTGRES_USER=gitlab
- POSTGRES_PASSWORD=${GITLAB_DB_PASSWORD}
volumes:
- /opt/stacks/development/gitlab-postgres/data:/var/lib/postgresql/data
```
**Purpose:** GitLab platform database
**Location:** `/opt/stacks/development/gitlab-postgres/data`
### Development Database (postgres)
```yaml
postgres:
image: postgres:latest
container_name: postgres
restart: unless-stopped
networks:
- traefik-network
ports:
- "5432:5432"
environment:
- POSTGRES_USER=admin
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=postgres
volumes:
- /opt/stacks/development/postgres/data:/var/lib/postgresql/data
```
**Purpose:** General development database
**Location:** `/opt/stacks/development/postgres/data`
## Management
### Access Database
```bash
# Connect to PostgreSQL
docker exec -it postgres psql -U admin -d postgres
# Or specific database
docker exec -it postgres psql -U admin -d dbname
```
### Common Commands
```sql
-- List databases
\l
-- Connect to database
\c database_name
-- List tables
\dt
-- Describe table
\d table_name
-- List users
\du
-- Quit
\q
```
### Backup Database
```bash
# Backup single database
docker exec postgres pg_dump -U admin dbname > backup.sql
# Backup all databases
docker exec postgres pg_dumpall -U admin > all_dbs_backup.sql
# Restore database
docker exec -i postgres psql -U admin -d dbname < backup.sql
```
### Create Database/User
```sql
-- Create database
CREATE DATABASE myapp;
-- Create user
CREATE USER myuser WITH PASSWORD 'password';
-- Grant privileges
GRANT ALL PRIVILEGES ON DATABASE myapp TO myuser;
```
## Summary
PostgreSQL provides advanced database services for:
- GitLab (if using PostgreSQL backend)
- Development applications
- Applications needing JSON support
- Complex query requirements
- Extensions like PostGIS
**Key Points:**
- More advanced than MySQL
- Native JSON support
- Powerful extensions
- ACID compliance
- Excellent performance
- Standards compliant
- Free and open-source
**Remember:**
- Use strong passwords
- Regular backups critical
- Monitor disk space
- VACUUM periodically
- Use pgAdmin for GUI management
- Test backups work
- Separate containers for isolation
PostgreSQL powers your advanced applications!