4.7 KiB
4.7 KiB
DirectLX.dev
Company website for DirectLX built with Flask, HTMX, and Tailwind CSS.
Tech Stack
- Backend: Python Flask with Flask-SQLAlchemy
- Database: SQLite
- Frontend: HTMX for dynamic interactions, Tailwind CSS for styling
- Templating: Jinja2
- Production: Gunicorn + Nginx
Features
- Company pages (Home, About, Services, Contact)
- Blog with search and pagination
- Community forum with categories, topics, and replies
- HTMX-powered forms and dynamic content loading
- Responsive design
Project Structure
directlx.dev/
├── app.py # Flask application & routes
├── config.py # Configuration settings
├── models.py # SQLAlchemy models
├── wsgi.py # WSGI entry point
├── requirements.txt # Python dependencies
├── package.json # Node dependencies (Tailwind)
├── tailwind.config.js # Tailwind configuration
├── templates/
│ ├── base.html # Base layout
│ ├── index.html # Home page
│ ├── about.html # About page
│ ├── services.html # Services page
│ ├── contact.html # Contact page
│ ├── blog/ # Blog templates
│ └── forum/ # Forum templates
├── static/
│ ├── css/
│ │ ├── input.css # Tailwind source
│ │ └── styles.css # Compiled CSS
│ ├── js/
│ │ └── htmx.min.js # HTMX library
│ └── images/
│ └── directLX_small.png
├── instance/
│ └── directlx.db # SQLite database
├── nginx.conf # Nginx configuration
├── directlx.service # Systemd service
└── deploy.sh # Deployment script
Local Development
Prerequisites
- Python 3.10+
- Node.js (for Tailwind CSS)
Setup
# Clone and enter directory
cd directlx.dev
# Create Python virtual environment
python3 -m venv venv
source venv/bin/activate
# Install Python dependencies
pip install -r requirements.txt
# Install Node dependencies and build CSS
npm install
npm run build:css
# Run development server
python app.py
Tailwind CSS
Watch for changes during development:
npm run watch:css
Rebuild CSS after template changes:
npm run build:css
Production Deployment
Automated Deployment
sudo ./deploy.sh
Manual Deployment
-
Copy files to server:
sudo mkdir -p /var/www/html/directlx.dev sudo cp -r app.py config.py models.py wsgi.py requirements.txt templates static /var/www/html/directlx.dev/ -
Set up Python environment:
cd /var/www/html/directlx.dev sudo python3 -m venv venv sudo venv/bin/pip install -r requirements.txt -
Create environment file:
echo "SECRET_KEY=$(python3 -c 'import secrets; print(secrets.token_hex(32))')" | sudo tee .env -
Set permissions:
sudo chown -R www-data:www-data /var/www/html/directlx.dev sudo chmod -R 755 /var/www/html/directlx.dev -
Install systemd service:
sudo cp directlx.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now directlx -
Configure Nginx:
sudo cp nginx.conf /etc/nginx/sites-available/directlx.dev sudo ln -sf /etc/nginx/sites-available/directlx.dev /etc/nginx/sites-enabled/ sudo nginx -t && sudo systemctl reload nginx
Useful Commands
# Check application status
sudo systemctl status directlx
# View application logs
sudo journalctl -u directlx -f
# Restart application
sudo systemctl restart directlx
# Reload Nginx
sudo systemctl reload nginx
Environment Variables
| Variable | Description | Required |
|---|---|---|
SECRET_KEY |
Flask secret key for sessions | Yes (production) |
DATABASE_URL |
Database connection string | No (defaults to SQLite) |
Database Models
- User - User accounts with authentication
- BlogPost - Blog articles with slugs
- ForumCategory - Forum category organization
- ForumTopic - Discussion topics
- ForumReply - Topic replies
- ContactMessage - Contact form submissions
API Routes
| Route | Description |
|---|---|
/ |
Home page |
/about |
About page |
/services |
Services page |
/contact |
Contact page |
/blog |
Blog listing |
/blog/<slug> |
Single blog post |
/forum |
Forum categories |
/forum/<slug> |
Category topics |
/forum/<slug>/<id> |
Topic with replies |
License
All rights reserved.