This repository serves as the build orchestrator for the Bloggo project. The actual source code is maintained in separate repositories:
- Frontend: bloggo-frontend - React + TypeScript
- Backend: bloggo-backend - Go + Chi Router
Pre-built binaries are available on the Releases page.
Linux AMD64:
wget https://github.com/Elagoht/bloggo/releases/latest/download/bloggo-linux-amd64.tar.gz
tar -xzf bloggo-linux-amd64.tar.gz
chmod +x bloggo-linux-amd64
./bloggo-linux-amd64
Linux ARM64:
wget https://github.com/Elagoht/bloggo/releases/latest/download/bloggo-linux-arm64.tar.gz
tar -xzf bloggo-linux-arm64.tar.gz
chmod +x bloggo-linux-arm64
./bloggo-linux-arm64
macOS AMD64 (Intel):
wget https://github.com/Elagoht/bloggo/releases/latest/download/bloggo-darwin-amd64.tar.gz
tar -xzf bloggo-darwin-amd64.tar.gz
chmod +x bloggo-darwin-amd64
./bloggo-darwin-amd64
macOS ARM64 (Apple Silicon):
wget https://github.com/Elagoht/bloggo/releases/latest/download/bloggo-darwin-arm64.tar.gz
tar -xzf bloggo-darwin-arm64.tar.gz
chmod +x bloggo-darwin-arm64
./bloggo-darwin-arm64
Download the checksums file and verify your binary:
wget https://github.com/Elagoht/bloggo/releases/latest/download/checksums.txt
sha256sum -c checksums.txt
- Node.js 20+
- Go 1.23+
- Make
- Clone the frontend and backend repositories:
git clone https://github.com/Elagoht/bloggo-frontend frontend
git clone https://github.com/Elagoht/bloggo-backend backend
- Run frontend in development mode:
cd frontend
npm install
npm run dev
- Run backend in development mode (in another terminal):
cd backend
go run cli/main.go
Build for your current platform:
make build
This will:
- Install frontend dependencies
- Build the frontend
- Embed the frontend into the backend
- Build the Go binary for your current platform
Clean build artifacts:
make clean
Releases are automated via GitHub Actions. When you push a tag, binaries are built for:
- Linux: AMD64, ARM64
- macOS: AMD64 (Intel), ARM64 (Apple Silicon)
To create a new release:
- Tag your commit with a semantic version:
git tag v1.0.0
git push origin v1.0.0
- Stable Release:
v1.0.0
,v2.1.3
- Release Candidate:
v1.0.0-rc1
,v2.1.0-rc2
- Beta:
v1.0.0-beta1
,v2.1.0-beta2
- Alpha:
v1.0.0-alpha1
,v2.1.0-alpha2
Tags ending with -rc
, -beta
, or -alpha
will be marked as pre-releases.
The backend requires a .env
file with the following variables:
# Server
PORT=8723
# JWT (required - must be 32+ characters)
JWT_SECRET=your-secret-key-here-min-32-chars
ACCESS_TOKEN_DURATION=900 # 15 minutes
REFRESH_TOKEN_DURATION=604800 # 7 days
# Gemini AI (optional)
GEMINI_API_KEY=your-gemini-api-key
# Trusted Frontend Key (required - must be 32+ characters)
TRUSTED_FRONTEND_KEY=your-frontend-key-here-32-chars
An .env.example
file is included in each release tarball.
bloggo/ # Build repository (this repo)
├── .github/
│ └── workflows/
│ └── release.yml # Automated release workflow
├── Makefile # Build commands
└── README.md # This file
External repositories:
├── bloggo-frontend/ # React frontend source
└── bloggo-backend/ # Go backend source
See the individual repositories for license information:
Contributions should be made to the respective repositories:
- Frontend issues/PRs → bloggo-frontend
- Backend issues/PRs → bloggo-backend
- Build/Release issues → This repository
- All secrets are stored in environment variables
- JWT-based authentication
- Rate limiting
- SQL injection protection via prepared statements
After extracting the release archive:
- Create a
.env
file with your configuration (copy from.env.example
) - Run the binary:
- Linux/macOS:
./bloggo-linux-amd64
(or your platform's binary)
- Linux/macOS:
- The application will create:
bloggo.sqlite
- Database file (on first run)uploads/
- File storage directory (automatically)
The application will be available at http://localhost:8723
(or your configured port).
No Node.js or frontend dependencies needed in production!