MiLog is a blogging program written in GoLang, based on Beego framework.
A complete demo of MiLog is http://migege.com.
MiLog now uses Beego v2.3.10 and bcrypt passwords. Before starting this version
against an existing database, back it up and apply
migrations/20260715_beego_v2.sql. Legacy password digests are irreversible;
generate and install a new bcrypt hash for every account:
printf '%s\n' 'a-new-password-of-at-least-12-bytes' | ./milog hash-passwordProduction deployments must set runmode = prod, provide a unique
MILOG_XSRF_KEY of at least 32 bytes, serve the application over HTTPS, and
provide database settings through MILOG_DB_HOST, MILOG_DB_PORT,
MILOG_DB_NAME, MILOG_DB_USER, MILOG_DB_PASSWORD, and
MILOG_DB_CHARSET (or the corresponding Beego config keys).
The checked-in development config disables XSRF because Beego v2 issues Secure
XSRF cookies that require HTTPS; it must never be used as production config.
vm0 is the only supported packaging environment. The helper copies the
current source tree to an isolated directory on vm0 with gt, then runs the
build through Docker Compose. Go and Docker are not required locally.
./scripts/vm0-build.sh test
./scripts/vm0-build.sh coverage
./scripts/vm0-build.sh race
./scripts/vm0-build.sh debug
VERSION=1.2.0 SOURCE_DATE_EPOCH=$(git log -1 --format=%ct) \
./scripts/vm0-build.sh release
./scripts/vm0-build.sh imageDebug and release artifacts are copied back to build/debug and
build/release. The release build is static, trimmed, and accompanied by a
reproducible archive and SHA-256 checksums.
Tests run serially against an isolated MariaDB tmpfs on vm0. The coverage
target writes its profile, function report, and HTML report to
build/coverage/ and enforces the project-wide 80% minimum.