Initial commit
This commit is contained in:
13
.env
Normal file
13
.env
Normal file
@@ -0,0 +1,13 @@
|
||||
# Database Configuration
|
||||
# Generate a secure password for your database
|
||||
# You can use: openssl rand -base64 32
|
||||
DB_PASSWORD=your_secure_database_password_here
|
||||
|
||||
# Wiki.js Configuration
|
||||
# The domain where your wiki will be accessible
|
||||
# For local development, use localhost:3000
|
||||
# For production, use your actual domain
|
||||
WIKI_URL=http://localhost:3000
|
||||
|
||||
# Optional: Set timezone (default is UTC)
|
||||
TZ=Europe/London
|
||||
155
README.md
Normal file
155
README.md
Normal file
@@ -0,0 +1,155 @@
|
||||
# Personal Wiki.js Setup for Home Server
|
||||
|
||||
This repository contains everything you need to set up your personal Wiki.js instance on your home server.
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
1. **Run the setup script:**
|
||||
```bash
|
||||
./setup.sh
|
||||
```
|
||||
|
||||
2. **Access your wiki:**
|
||||
- Open http://localhost:3000 in your browser
|
||||
- Complete the initial setup wizard
|
||||
- Create your administrator account
|
||||
|
||||
## 📁 Project Structure
|
||||
|
||||
```
|
||||
wikiaodh/
|
||||
├── docker-compose.yml # Docker services configuration
|
||||
├── .env # Environment variables (passwords, etc.)
|
||||
├── setup.sh # Automated setup script
|
||||
├── README.md # This file
|
||||
└── data/ # Created automatically for persistent data
|
||||
├── wiki/ # Wiki application data
|
||||
├── db/ # PostgreSQL database files
|
||||
└── assets/ # Uploaded media and assets
|
||||
```
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Environment Variables (.env)
|
||||
- `DB_PASSWORD`: Secure password for PostgreSQL database
|
||||
- `WIKI_URL`: The URL where your wiki will be accessible
|
||||
- `TZ`: Your timezone (default: Europe/London)
|
||||
|
||||
### Ports
|
||||
- **3000**: Wiki.js web interface (http://localhost:3000)
|
||||
- **5432**: PostgreSQL database (internal only)
|
||||
|
||||
## 📋 Management Commands
|
||||
|
||||
```bash
|
||||
# Start the wiki
|
||||
docker-compose up -d
|
||||
|
||||
# Stop the wiki
|
||||
docker-compose down
|
||||
|
||||
# View logs
|
||||
docker-compose logs -f
|
||||
|
||||
# Restart services
|
||||
docker-compose restart
|
||||
|
||||
# Update to latest version
|
||||
docker-compose pull
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
## 💾 Backup & Restore
|
||||
|
||||
### Backup
|
||||
```bash
|
||||
# Backup database
|
||||
docker-compose exec db pg_dump -U wikijs wiki > backup_$(date +%Y%m%d).sql
|
||||
|
||||
# Backup uploaded files
|
||||
tar -czf assets_backup_$(date +%Y%m%d).tar.gz data/assets/
|
||||
```
|
||||
|
||||
### Restore
|
||||
```bash
|
||||
# Restore database
|
||||
docker-compose exec -T db psql -U wikijs wiki < backup_YYYYMMDD.sql
|
||||
|
||||
# Restore uploaded files
|
||||
tar -xzf assets_backup_YYYYMMDD.tar.gz
|
||||
```
|
||||
|
||||
## 🔒 Security Considerations
|
||||
|
||||
1. **Change default passwords**: The setup script generates a secure database password automatically
|
||||
2. **Firewall**: Consider restricting access to port 3000 to your local network only
|
||||
3. **HTTPS**: For production use, set up a reverse proxy with SSL/TLS
|
||||
4. **Regular updates**: Keep Docker images updated with `docker-compose pull`
|
||||
|
||||
## 🌐 Accessing from Other Devices
|
||||
|
||||
To access your wiki from other devices on your network:
|
||||
|
||||
1. Find your server's IP address: `ip addr show`
|
||||
2. Update the `WIKI_URL` in `.env` to use your server's IP
|
||||
3. Access via `http://YOUR_SERVER_IP:3000`
|
||||
|
||||
## 📚 Wiki.js Features
|
||||
|
||||
Your personal wiki includes:
|
||||
|
||||
- **Rich Text Editor**: WYSIWYG and Markdown support
|
||||
- **Media Management**: Upload and organize images, documents, videos
|
||||
- **Search**: Full-text search across all content
|
||||
- **User Management**: Create accounts for family members or team
|
||||
- **Themes**: Light and dark mode support
|
||||
- **Mobile Friendly**: Responsive design for all devices
|
||||
- **Version History**: Track changes to all pages
|
||||
- **Categories & Tags**: Organize content efficiently
|
||||
|
||||
## 🆘 Troubleshooting
|
||||
|
||||
### Wiki won't start
|
||||
```bash
|
||||
# Check logs
|
||||
docker-compose logs
|
||||
|
||||
# Restart services
|
||||
docker-compose down
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
### Database connection issues
|
||||
```bash
|
||||
# Reset database
|
||||
docker-compose down
|
||||
docker volume rm wikiaodh_db-data
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
### Permission issues
|
||||
```bash
|
||||
# Fix permissions
|
||||
sudo chown -R $USER:$USER data/
|
||||
chmod -R 755 data/
|
||||
```
|
||||
|
||||
## 🔄 Updates
|
||||
|
||||
To update Wiki.js to the latest version:
|
||||
|
||||
```bash
|
||||
docker-compose down
|
||||
docker-compose pull
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
## 📞 Support
|
||||
|
||||
- [Wiki.js Documentation](https://docs.js.wiki/)
|
||||
- [Wiki.js GitHub](https://github.com/Requarks/wiki)
|
||||
- [Docker Compose Documentation](https://docs.docker.com/compose/)
|
||||
|
||||
---
|
||||
|
||||
**Enjoy your personal wiki! 📖✨**
|
||||
44
backup.sh
Executable file
44
backup.sh
Executable file
@@ -0,0 +1,44 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Wiki.js Backup Script
|
||||
# Creates backups of your wiki database and uploaded assets
|
||||
|
||||
set -e
|
||||
|
||||
BACKUP_DIR="backups"
|
||||
DATE=$(date +%Y%m%d_%H%M%S)
|
||||
|
||||
echo "🔄 Starting Wiki.js backup..."
|
||||
|
||||
# Create backup directory if it doesn't exist
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
|
||||
# Check if services are running
|
||||
if ! docker-compose ps | grep -q "Up"; then
|
||||
echo "❌ Wiki.js services are not running. Please start them first with: docker-compose up -d"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "💾 Backing up database..."
|
||||
# Backup PostgreSQL database
|
||||
docker-compose exec -T db pg_dump -U wikijs wiki > "$BACKUP_DIR/wiki_db_$DATE.sql"
|
||||
|
||||
echo "📁 Backing up assets and data..."
|
||||
# Backup uploaded assets and wiki data
|
||||
tar -czf "$BACKUP_DIR/wiki_assets_$DATE.tar.gz" -C data assets wiki 2>/dev/null || true
|
||||
|
||||
# Backup configuration files
|
||||
echo "⚙️ Backing up configuration..."
|
||||
tar -czf "$BACKUP_DIR/wiki_config_$DATE.tar.gz" docker-compose.yml .env README.md 2>/dev/null || true
|
||||
|
||||
echo "✅ Backup completed successfully!"
|
||||
echo "📂 Backup files created:"
|
||||
echo " - Database: $BACKUP_DIR/wiki_db_$DATE.sql"
|
||||
echo " - Assets: $BACKUP_DIR/wiki_assets_$DATE.tar.gz"
|
||||
echo " - Config: $BACKUP_DIR/wiki_config_$DATE.tar.gz"
|
||||
|
||||
# Clean up old backups (keep last 7 days)
|
||||
echo "🧹 Cleaning up old backups (keeping last 7 days)..."
|
||||
find "$BACKUP_DIR" -name "wiki_*" -type f -mtime +7 -delete 2>/dev/null || true
|
||||
|
||||
echo "🎉 Backup process complete!"
|
||||
49
docker-compose.yml
Normal file
49
docker-compose.yml
Normal file
@@ -0,0 +1,49 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
wiki:
|
||||
image: ghcr.io/requarks/wiki:2
|
||||
container_name: wikiaodh
|
||||
depends_on:
|
||||
- db
|
||||
environment:
|
||||
DB_TYPE: postgres
|
||||
DB_HOST: db
|
||||
DB_PORT: 5432
|
||||
DB_USER: wikijs
|
||||
DB_PASS: ${DB_PASSWORD}
|
||||
DB_NAME: wiki
|
||||
UPGRADE_COMPANION: 1
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "3000:3000"
|
||||
volumes:
|
||||
- wiki-data:/wiki/data
|
||||
- wiki-assets:/wiki/assets
|
||||
networks:
|
||||
- wiki-network
|
||||
|
||||
db:
|
||||
image: postgres:15-alpine
|
||||
container_name: wikiaodh-db
|
||||
environment:
|
||||
POSTGRES_DB: wiki
|
||||
POSTGRES_USER: wikijs
|
||||
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- db-data:/var/lib/postgresql/data
|
||||
networks:
|
||||
- wiki-network
|
||||
|
||||
volumes:
|
||||
wiki-data:
|
||||
driver: local
|
||||
wiki-assets:
|
||||
driver: local
|
||||
db-data:
|
||||
driver: local
|
||||
|
||||
networks:
|
||||
wiki-network:
|
||||
driver: bridge
|
||||
79
setup.sh
Executable file
79
setup.sh
Executable file
@@ -0,0 +1,79 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Wiki.js Setup Script for Home Server
|
||||
# This script helps you set up your personal Wiki.js instance
|
||||
|
||||
set -e
|
||||
|
||||
echo "🚀 Setting up Wiki.js for your home server..."
|
||||
|
||||
# Check if Docker is installed
|
||||
if ! command -v docker &> /dev/null; then
|
||||
echo "❌ Docker is not installed. Please install Docker first."
|
||||
echo "Visit: https://docs.docker.com/engine/install/"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if Docker Compose is installed
|
||||
if ! command -v docker-compose &> /dev/null && ! docker compose version &> /dev/null; then
|
||||
echo "❌ Docker Compose is not installed. Please install Docker Compose first."
|
||||
echo "Visit: https://docs.docker.com/compose/install/"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Generate a secure database password if not already set
|
||||
if [ ! -f .env ]; then
|
||||
echo "❌ .env file not found. Please create it first."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if password is still the default
|
||||
if grep -q "your_secure_database_password_here" .env; then
|
||||
echo "🔐 Generating secure database password..."
|
||||
SECURE_PASSWORD=$(openssl rand -base64 32)
|
||||
sed -i "s/your_secure_database_password_here/$SECURE_PASSWORD/g" .env
|
||||
echo "✅ Secure password generated and saved to .env"
|
||||
fi
|
||||
|
||||
# Create necessary directories
|
||||
echo "📁 Creating data directories..."
|
||||
mkdir -p data/wiki
|
||||
mkdir -p data/db
|
||||
mkdir -p data/assets
|
||||
|
||||
# Set proper permissions
|
||||
echo "🔧 Setting permissions..."
|
||||
chmod 755 data/wiki data/db data/assets
|
||||
|
||||
# Pull the latest images
|
||||
echo "📥 Pulling Docker images..."
|
||||
docker-compose pull
|
||||
|
||||
# Start the services
|
||||
echo "🏃 Starting Wiki.js services..."
|
||||
docker-compose up -d
|
||||
|
||||
# Wait for services to be ready
|
||||
echo "⏳ Waiting for services to start..."
|
||||
sleep 10
|
||||
|
||||
# Check if services are running
|
||||
if docker-compose ps | grep -q "Up"; then
|
||||
echo "✅ Wiki.js is starting up!"
|
||||
echo ""
|
||||
echo "🌐 Your wiki will be available at: http://localhost:3000"
|
||||
echo "⏰ Please wait 1-2 minutes for the initial setup to complete."
|
||||
echo ""
|
||||
echo "📋 Next steps:"
|
||||
echo "1. Open http://localhost:3000 in your browser"
|
||||
echo "2. Complete the initial setup wizard"
|
||||
echo "3. Create your administrator account"
|
||||
echo "4. Start adding content to your personal wiki!"
|
||||
echo ""
|
||||
echo "📊 To check status: docker-compose logs -f"
|
||||
echo "🛑 To stop: docker-compose down"
|
||||
echo "🔄 To restart: docker-compose restart"
|
||||
else
|
||||
echo "❌ Something went wrong. Check the logs with: docker-compose logs"
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user