The podcast showcase & community / Phoenix based web application
Go to file
Stefan Haslinger 074bdc173a updated node dependencies 2023-10-15 17:06:38 +02:00
.vscode i now ran the code formatter for the whole project 😱 2020-06-18 15:38:33 +02:00
assets updated node dependencies 2023-10-15 17:06:38 +02:00
config dependency updates 2023-03-28 10:00:48 +02:00
lib phx_ attributes are now named phx-, node module updates 2023-08-19 18:05:59 +02:00
materials wip: responsiveness check 2022-02-02 15:45:36 +01:00
priv phx_ attributes are now named phx-, node module updates 2023-08-19 18:05:59 +02:00
test imported phoenix boilerplate code from phoenix boilerplate generator 2021-01-27 13:21:53 +01:00
.credo.exs add credo config file 2017-11-17 15:47:18 +01:00
.formatter.exs updating dependencies because we got all updates we needed, fixed warnings 2023-06-08 21:39:40 +02:00
.gitignore configure surface for js-hooks 2022-01-02 09:36:23 +01:00 switch from to 2022-11-06 18:09:30 +01:00
LICENSE Initial commit 2016-09-12 09:22:18 +02:00 fixed email address in readme 2023-08-16 23:55:41 +02:00
mix.exs dependency updates 2023-10-15 17:04:56 +02:00
mix.lock dependency updates 2023-10-15 17:04:56 +02:00
workspace.code-workspace footer styling, centering forms 2022-01-30 20:24:54 +01:00


Warning: This is the branch for the major rewrite of

We are

  • upgrading to the latest version of Phoenix
  • switching from Bootstrap + Bootflat to Tailwind.css
  • switching from jQuery to Alpine.js
  • switching for certain actions from MVC to LiveView
  • switching from master to main branch

Currently the master branch is the one that is still used in production. This branch is work in progress!

Panoptikum (or short Pan) is a webapplication written in Phoenix that represents a podcast discovery and community website.

It is licensed under the AGPL license. The project website with more information on the project can be found at If you are interested and want to get in touch, write an email to Stefan.


📋 Prerequirements

📦 Install dependencies

  • Install Elixir's dependencies with mix deps.get
  • Install Node.js dependencies with npm install inside the assets folder

🛠 Configuration

  • Copy config/dev.secret.exs.example to config/dev.secret.exs and insert your own data
  • Copy config/prod.secret.exs.example to config/prod.secret.exs and insert your own data

📚 Database and demo data

  • Setup your database with mix ecto.setup
  • Import demo data
    • Uncompress materials/pan_dev.sql.gz
    • Import data with psql pan_dev < pan_dev.sql inside the materials folder
    • Seed an admin user with mix run priv/repo/seeds.exs that has the credentials user admin and password changeme

⏯ Run locally

  • Start Phoenix endpoint with mix phx.server
  • Now you can visit localhost:4000 from your browser.
  • Login as Admin using username admin and password changeme

🌡 Testing

  • Run tests with mix test


  • Sending a Test Mail from the console Pan.Email.login_link_html_email("mytoken", "") |> Pan.Mailer.deliver()
  • To rebuilt the search index login as admin and visit localhost:4000/admin/search/push_all