71 lines
1.6 KiB
Markdown
71 lines
1.6 KiB
Markdown
# Rust Blog CMS
|
|
|
|
A simple blog CMS built with Rust, Axum, Askama, and SQLite.
|
|
|
|
## Prerequisites
|
|
|
|
- [Rust & Cargo](https://rustup.rs/) (latest stable version)
|
|
|
|
## Configuration
|
|
|
|
1. Copy the `.env.example` file to create your local `.env` file:
|
|
```bash
|
|
cp .env.example .env
|
|
```
|
|
|
|
2. Open the `.env` file and set your environment variables:
|
|
- `PORT`: The port your server will listen on (default is `3000`).
|
|
- `DATABASE_URL`: The connection string for your SQLite database (default is `sqlite://data.db`).
|
|
|
|
## Database Setup
|
|
|
|
*If you are using the `sqlx` CLI, you can create the database with:*
|
|
|
|
```bash
|
|
cargo install sqlx-cli --no-default-features --features rustls,sqlite
|
|
sqlx database create
|
|
```
|
|
*(Optionally run migrations if any exist: `sqlx migrate run`)*
|
|
|
|
|
|
## Running the app
|
|
|
|
To start the server, simply run:
|
|
|
|
```bash
|
|
cargo run
|
|
```
|
|
|
|
Then, open your web browser and navigate to `http://localhost:3000` (or whichever port you configured).
|
|
|
|
## Run with Docker
|
|
|
|
You can also run this project using Docker.
|
|
|
|
### Using Docker Compose (Recommended)
|
|
|
|
To start the application and its dependencies (like the database and attachment storage):
|
|
|
|
```bash
|
|
docker-compose up -d --build
|
|
```
|
|
|
|
The application will be accessible at `http://localhost:3000`. Persistent data (the database and attachments) will be stored in the local directory.
|
|
|
|
### Using Docker Directly
|
|
|
|
1. Build the image:
|
|
```bash
|
|
docker build -t blog-cms .
|
|
```
|
|
|
|
2. Run the container:
|
|
```bash
|
|
docker run -d \
|
|
-p 3000:3000 \
|
|
-v $(pwd)/data.db:/app/data.db \
|
|
-v $(pwd)/attachments:/app/attachments \
|
|
--name blog-cms \
|
|
blog-cms
|
|
```
|