A REST API and web interface for a blog platform, built in Go. Users can register, write articles and comment on each other's posts.
- 🔐 Authentication with hashed passwords (argon2id) and JWT tokens
- 📝 Full CRUD for articles and comments
- 🛡️ Route protection with auth middleware
- 🌐 Web interface served with Go templates
- Docker installed
- Clone the repo
git clone https://github.com/TheKankan/Terminal_Chat.git-
Edit .env.example : rename it .env and change the values inside it
-
Start the server and database
docker compose upThe server is now running on http://localhost:8080 !
- Go 1.25+
- PostgreSQL
- goose for migrations
- Clone the repo
git clone https://github.com/TheKankan/Bloggy.git-
Edit .env with your PostgreSQL connection string and JWT_SECRET
-
Run migrations
goose -dir sql/schema postgres "$DB_URL" up- Start the server
go run ./cmd/serverThe server is now running on http://localhost:8080 !
- Go — server and web templates
- PostgreSQL — persistent storage
- chi — HTTP router (go-chi/chi)
- JWT — authentication (golang-jwt)
- argon2id — password hashing (alexedwards/argon2id)
- sqlc — type-safe SQL (sqlc)
- goose — database migrations (pressly/goose)
- Docker — containerization
Clone the repo and set up your .env (see Quick Start above)
# Run tests
go test ./...
# Start the server
go run ./cmd/serverOpen a pull request to the main branch to add new features or fix issues.