A self-hosted journal web app using the Phoenix framework and a PostgreSQL database. The images are from Unsplash's API.
The images from the screenshots above are by setsj
You need nodejs, elixir, the Phoenix framework and a Postgres server.
- Clone the repo
- Edit
config/config.exs
with an unsplash access key and database details. - Install the dependencies with
mix deps.get
. - Create and migrate your database with
mix ecto.setup
. - Install Node.js dependencies with
npm install
inside theassets
directory. - Start Phoenix endpoint with
mix phx.server
.
Full documentation at the phoenix guide.
- Generate a secret key base with
mix phx.gen.secret
and export it withexport SECRET_KEY_BASE=REALLY_LONG_SECRET
- Export the database url with
export DATABASE_URL=ecto://USER:PASS@HOST/database
# Compile
mix deps.get --only prod
MIX_ENV=prod mix compile
npm run deploy --prefix ./assets
mix phx.digest
# Migrate if necessary
MIX_ENV=prod mix ecto.migrate
# Run in detached mode
PORT=4001 MIX_ENV=prod elixir --erl "-detached" -S mix phx.server
- Encrypt entries with a password.
- Export to pdf.
- Create an offline page for PWA.
- Light mode / Dark mode switcher