385 lines
8.2 KiB
Markdown
385 lines
8.2 KiB
Markdown
![]() |
---
|
||
|
title: "Getting Started Guide"
|
||
|
slug: "getting-started"
|
||
|
name: "getting-started"
|
||
|
author: "Documentation Team"
|
||
|
content_type: "documentation"
|
||
|
content_format: "markdown"
|
||
|
container: "docs-container"
|
||
|
state: "published"
|
||
|
require_login: false
|
||
|
date_init: "2024-01-10T09:00:00Z"
|
||
|
tags: ["documentation", "getting-started", "tutorial", "setup"]
|
||
|
category: "documentation"
|
||
|
excerpt: "Learn how to get started with our platform. Complete setup guide, installation instructions, and first steps to get you up and running quickly."
|
||
|
seo_title: "Getting Started - Complete Setup Guide"
|
||
|
seo_description: "Complete getting started guide with installation instructions, setup steps, and examples to help you begin using our platform effectively."
|
||
|
allow_comments: false
|
||
|
sort_order: 1
|
||
|
metadata:
|
||
|
reading_time: "5"
|
||
|
difficulty: "beginner"
|
||
|
last_updated: "2024-01-10"
|
||
|
section: "basics"
|
||
|
---
|
||
|
|
||
|
# Getting Started Guide
|
||
|
|
||
|
Welcome to our platform! This guide will help you get up and running quickly with all the essential features and functionality.
|
||
|
|
||
|
## Prerequisites
|
||
|
|
||
|
Before you begin, make sure you have the following installed on your system:
|
||
|
|
||
|
- **Rust** (version 1.75 or later)
|
||
|
- **Node.js** (version 18 or later)
|
||
|
- **PostgreSQL** (version 14 or later)
|
||
|
- **Git** for version control
|
||
|
|
||
|
### Installing Rust
|
||
|
|
||
|
If you don't have Rust installed, visit [rustup.rs](https://rustup.rs/) and follow the installation instructions for your operating system.
|
||
|
|
||
|
```bash
|
||
|
# Verify your Rust installation
|
||
|
rustc --version
|
||
|
cargo --version
|
||
|
```
|
||
|
|
||
|
### Installing Node.js
|
||
|
|
||
|
Download and install Node.js from [nodejs.org](https://nodejs.org/) or use a version manager like `nvm`:
|
||
|
|
||
|
```bash
|
||
|
# Using nvm (recommended)
|
||
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
|
||
|
nvm install 18
|
||
|
nvm use 18
|
||
|
```
|
||
|
|
||
|
## Installation
|
||
|
|
||
|
### 1. Clone the Repository
|
||
|
|
||
|
```bash
|
||
|
git clone https://github.com/your-org/your-project.git
|
||
|
cd your-project
|
||
|
```
|
||
|
|
||
|
### 2. Environment Setup
|
||
|
|
||
|
Copy the example environment file and configure your settings:
|
||
|
|
||
|
```bash
|
||
|
cp .env.example .env
|
||
|
```
|
||
|
|
||
|
Edit the `.env` file with your configuration:
|
||
|
|
||
|
```env
|
||
|
# Database Configuration
|
||
|
DATABASE_URL=postgres://username:password@localhost/database_name
|
||
|
|
||
|
# Server Configuration
|
||
|
SERVER_HOST=127.0.0.1
|
||
|
SERVER_PORT=3000
|
||
|
SERVER_PROTOCOL=http
|
||
|
|
||
|
# JWT Configuration
|
||
|
JWT_SECRET=your-super-secret-jwt-key
|
||
|
JWT_EXPIRATION=24h
|
||
|
|
||
|
# OAuth Configuration (optional)
|
||
|
GOOGLE_CLIENT_ID=your-google-client-id
|
||
|
GOOGLE_CLIENT_SECRET=your-google-client-secret
|
||
|
GITHUB_CLIENT_ID=your-github-client-id
|
||
|
GITHUB_CLIENT_SECRET=your-github-client-secret
|
||
|
```
|
||
|
|
||
|
### 3. Database Setup
|
||
|
|
||
|
Create your PostgreSQL database and run migrations:
|
||
|
|
||
|
```bash
|
||
|
# Create database (adjust for your setup)
|
||
|
createdb your_database_name
|
||
|
|
||
|
# Run migrations
|
||
|
cargo install sqlx-cli
|
||
|
sqlx migrate run
|
||
|
```
|
||
|
|
||
|
### 4. Install Dependencies
|
||
|
|
||
|
```bash
|
||
|
# Install Rust dependencies
|
||
|
cargo build
|
||
|
|
||
|
# Install Node.js dependencies (if using frontend build tools)
|
||
|
npm install
|
||
|
```
|
||
|
|
||
|
## Quick Start
|
||
|
|
||
|
### 1. Start the Development Server
|
||
|
|
||
|
```bash
|
||
|
cargo run
|
||
|
```
|
||
|
|
||
|
The server will start on `http://localhost:3000` by default.
|
||
|
|
||
|
### 2. Access the Application
|
||
|
|
||
|
Open your web browser and navigate to:
|
||
|
- **Main Application**: `http://localhost:3000`
|
||
|
- **API Documentation**: `http://localhost:3000/api/docs` (if enabled)
|
||
|
- **Health Check**: `http://localhost:3000/health`
|
||
|
|
||
|
### 3. Create Your First User
|
||
|
|
||
|
You can create a user account through the registration endpoint:
|
||
|
|
||
|
```bash
|
||
|
curl -X POST http://localhost:3000/api/auth/register \
|
||
|
-H "Content-Type: application/json" \
|
||
|
-d '{
|
||
|
"username": "admin",
|
||
|
"email": "admin@example.com",
|
||
|
"password": "SecurePassword123!",
|
||
|
"display_name": "Administrator"
|
||
|
}'
|
||
|
```
|
||
|
|
||
|
## Basic Usage
|
||
|
|
||
|
### Authentication
|
||
|
|
||
|
Our platform supports multiple authentication methods:
|
||
|
|
||
|
#### 1. Username/Password Authentication
|
||
|
|
||
|
```bash
|
||
|
# Login with username and password
|
||
|
curl -X POST http://localhost:3000/api/auth/login \
|
||
|
-H "Content-Type: application/json" \
|
||
|
-d '{
|
||
|
"username": "admin",
|
||
|
"password": "SecurePassword123!"
|
||
|
}'
|
||
|
```
|
||
|
|
||
|
#### 2. OAuth Integration
|
||
|
|
||
|
We support OAuth with popular providers:
|
||
|
- Google OAuth
|
||
|
- GitHub OAuth
|
||
|
- Discord OAuth
|
||
|
|
||
|
Visit `/api/auth/oauth/{provider}/authorize` to initiate OAuth flow.
|
||
|
|
||
|
### Content Management
|
||
|
|
||
|
#### Creating Content
|
||
|
|
||
|
```bash
|
||
|
# Create a new blog post
|
||
|
curl -X POST http://localhost:3000/api/content/contents \
|
||
|
-H "Content-Type: application/json" \
|
||
|
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
|
||
|
-d '{
|
||
|
"slug": "my-first-post",
|
||
|
"title": "My First Blog Post",
|
||
|
"name": "first-post",
|
||
|
"content_type": "blog",
|
||
|
"content": "# Welcome\n\nThis is my first blog post!",
|
||
|
"container": "blog-container",
|
||
|
"state": "published"
|
||
|
}'
|
||
|
```
|
||
|
|
||
|
#### Retrieving Content
|
||
|
|
||
|
```bash
|
||
|
# Get content by slug
|
||
|
curl http://localhost:3000/api/content/contents/slug/my-first-post
|
||
|
|
||
|
# Get rendered HTML
|
||
|
curl http://localhost:3000/api/content/contents/slug/my-first-post/render
|
||
|
|
||
|
# List all published content
|
||
|
curl http://localhost:3000/api/content/contents/published
|
||
|
```
|
||
|
|
||
|
## Configuration Options
|
||
|
|
||
|
### Server Configuration
|
||
|
|
||
|
The server can be configured through environment variables or a configuration file:
|
||
|
|
||
|
```toml
|
||
|
# config/server.toml
|
||
|
[server]
|
||
|
host = "127.0.0.1"
|
||
|
port = 3000
|
||
|
protocol = "http"
|
||
|
|
||
|
[database]
|
||
|
url = "postgres://localhost/myapp"
|
||
|
max_connections = 10
|
||
|
|
||
|
[security]
|
||
|
jwt_secret = "your-secret-key"
|
||
|
cors_origins = ["http://localhost:3000"]
|
||
|
rate_limit_requests = 1000
|
||
|
rate_limit_window = 3600
|
||
|
```
|
||
|
|
||
|
### Content Configuration
|
||
|
|
||
|
Configure content sources and behavior:
|
||
|
|
||
|
```toml
|
||
|
# config/content.toml
|
||
|
[content]
|
||
|
source = "database" # or "files" or "both"
|
||
|
file_path = "./content"
|
||
|
enable_cache = true
|
||
|
default_container = "page-container"
|
||
|
|
||
|
[rendering]
|
||
|
enable_syntax_highlighting = true
|
||
|
enable_tables = true
|
||
|
enable_footnotes = true
|
||
|
theme = "base16-ocean.dark"
|
||
|
```
|
||
|
|
||
|
## Development Workflow
|
||
|
|
||
|
### 1. Making Changes
|
||
|
|
||
|
```bash
|
||
|
# Create a new feature branch
|
||
|
git checkout -b feature/my-new-feature
|
||
|
|
||
|
# Make your changes
|
||
|
# ... edit files ...
|
||
|
|
||
|
# Run tests
|
||
|
cargo test
|
||
|
|
||
|
# Check formatting
|
||
|
cargo fmt --check
|
||
|
|
||
|
# Run lints
|
||
|
cargo clippy
|
||
|
```
|
||
|
|
||
|
### 2. Database Migrations
|
||
|
|
||
|
When you need to modify the database schema:
|
||
|
|
||
|
```bash
|
||
|
# Create a new migration
|
||
|
sqlx migrate add create_my_table
|
||
|
|
||
|
# Edit the generated migration file
|
||
|
# migrations/YYYYMMDDHHMMSS_create_my_table.sql
|
||
|
|
||
|
# Run the migration
|
||
|
sqlx migrate run
|
||
|
```
|
||
|
|
||
|
### 3. Running Tests
|
||
|
|
||
|
```bash
|
||
|
# Run all tests
|
||
|
cargo test
|
||
|
|
||
|
# Run tests with output
|
||
|
cargo test -- --nocapture
|
||
|
|
||
|
# Run specific test
|
||
|
cargo test test_name
|
||
|
|
||
|
# Run integration tests
|
||
|
cargo test --test integration_tests
|
||
|
```
|
||
|
|
||
|
## Troubleshooting
|
||
|
|
||
|
### Common Issues
|
||
|
|
||
|
#### Database Connection Issues
|
||
|
|
||
|
```bash
|
||
|
# Check if PostgreSQL is running
|
||
|
pg_isready
|
||
|
|
||
|
# Check database exists
|
||
|
psql -l | grep your_database_name
|
||
|
|
||
|
# Test connection
|
||
|
psql $DATABASE_URL -c "SELECT 1;"
|
||
|
```
|
||
|
|
||
|
#### Port Already in Use
|
||
|
|
||
|
```bash
|
||
|
# Find process using port 3000
|
||
|
lsof -i :3000
|
||
|
|
||
|
# Kill the process (replace PID)
|
||
|
kill -9 PID
|
||
|
```
|
||
|
|
||
|
#### Permission Issues
|
||
|
|
||
|
```bash
|
||
|
# Fix file permissions
|
||
|
chmod +x target/debug/your-app
|
||
|
chmod -R 755 content/
|
||
|
```
|
||
|
|
||
|
### Log Analysis
|
||
|
|
||
|
Enable detailed logging for debugging:
|
||
|
|
||
|
```bash
|
||
|
# Set log level
|
||
|
export RUST_LOG=debug
|
||
|
|
||
|
# Run with logging
|
||
|
cargo run
|
||
|
```
|
||
|
|
||
|
### Getting Help
|
||
|
|
||
|
If you encounter issues:
|
||
|
|
||
|
1. **Check the logs** for error messages
|
||
|
2. **Review the documentation** for your specific use case
|
||
|
3. **Search existing issues** on GitHub
|
||
|
4. **Create a new issue** with detailed information
|
||
|
5. **Join our community** on Discord for real-time help
|
||
|
|
||
|
## Next Steps
|
||
|
|
||
|
Now that you have the basics working, here are some recommended next steps:
|
||
|
|
||
|
1. **[User Management](user-management.md)** - Learn about user roles and permissions
|
||
|
2. **[Content Creation](content-creation.md)** - Deep dive into content management
|
||
|
3. **[API Reference](api-reference.md)** - Explore all available endpoints
|
||
|
4. **[Deployment Guide](deployment.md)** - Deploy to production
|
||
|
5. **[Security Best Practices](security.md)** - Secure your application
|
||
|
|
||
|
## Additional Resources
|
||
|
|
||
|
- **[API Documentation](api-reference.md)** - Complete API reference
|
||
|
- **[Configuration Guide](configuration.md)** - Detailed configuration options
|
||
|
- **[Performance Tuning](performance.md)** - Optimize your application
|
||
|
- **[Contributing Guide](contributing.md)** - How to contribute to the project
|
||
|
|
||
|
---
|
||
|
|
||
|
*This guide gets you started quickly. For more detailed information, explore the other documentation sections or check out our [FAQ](faq.md).*
|