• Elixir 74.8%
  • TypeScript 18.4%
  • CSS 4.3%
  • Rust 1.3%
  • Shell 0.5%
  • Other 0.7%
Find a file
2026-07-14 19:11:24 +02:00
.devcontainer Devcontainer Setup v2 (#644) 2025-11-19 10:06:57 +01:00
.githooks Remove once_cell dependency 2026-06-06 17:22:11 -04:00
.github Address review comments 2026-06-07 13:53:41 -04:00
assets pretty diffs 2026-07-13 22:28:27 +02:00
config Characterization Tests (#708) 2026-07-10 20:34:59 +02:00
docker update docker image tags 2026-06-29 16:14:59 +02:00
lib pretty diffs 2026-07-13 22:28:27 +02:00
native/philomena 50ms deadline + fix weird comment 2026-07-14 18:48:04 +02:00
priv Better ICC profile handling in image processing 2026-05-03 17:22:29 -04:00
scripts fix lib.sh error on macOS bash 2026-07-02 13:18:15 +02:00
test pretty diffs 2026-07-13 22:28:27 +02:00
.credo.exs Fix some credo issues 2024-06-24 23:23:43 -04:00
.dialyzer_ignore.exs Remove unnecessary dialyzer skips 2026-06-07 13:23:42 -04:00
.editorconfig Add switch_case_ident to .editorconfig to fix the defaults of shfmt (facehoof) 2025-04-06 20:03:27 +00:00
.formatter.exs initial 2019-08-14 20:32:32 -04:00
.gitattributes Make sure our frontend compiles with es2019 maximum (#553) 2025-05-07 10:53:35 +02:00
.gitignore Added root node_modules to .gitingore 2025-09-07 18:40:44 +04:00
.iex.exs run formatter 2020-01-10 23:20:19 -05:00
.prettierrc.yml Apply npm run fmt across the entire codebase 2025-03-16 23:26:36 +00:00
.sobelow-conf add and configure sobelow 2021-04-01 12:49:41 -04:00
.typos.toml review fixes, fix warnings, fix spellcheck error, use assoc 2025-11-06 13:26:02 +01:00
docker-compose.yml update docker image tags 2026-06-29 16:14:59 +02:00
LICENSE add totp & registration freeze 2019-08-17 18:06:11 -04:00
mix.exs Remove unnecessary dialyzer skips 2026-06-07 13:23:42 -04:00
mix.lock Update mix dependencies 2026-07-12 23:02:30 -04:00
openapi.yaml improve API response consistency and sanity 2026-07-10 23:13:37 +02:00
package-lock.json npm updates (to fix audit warning) 2026-06-29 15:48:48 +02:00
package.json npm updates (to fix audit warning) 2026-06-29 15:48:48 +02:00
README.md Refresh dev instructions in README 2026-05-02 14:38:02 +00:00
rust-toolchain.toml bump rust toolchain to match alpine 3.24 2026-06-29 16:22:44 +02:00

Philomena

Philomena

Getting Started

Make sure you have Docker and Docker Compose plugin installed.

You can open this repo via a devcontainer in VSCode, JetBrains, GitHub Codespaces or any other supported IDE. This setup is the recommended way to develop and this way it's guaranteed everyone uses the same dev configs and dependencies.

If you can't/don't want to use devcontainers, then go through the docker/app/Dockerfile to see what dependencies/configurations you need to set up on your host machine.

Note that there are some additional Prerequisites for Remote SSH Development.

Dev Stack

Use the following commands to bring up or shut down the dev stack.

philomena up
philomena down

Once the application has started, navigate to http://localhost:8080 and log in with

Credential Value
Email admin@example.com
Password philomena123

Tip

See the source code of scripts/philomena.sh for details on the additional parameters and other subcommands.

Devcontainer Specifics

The devcontainer is configured with the docker-compose.yml. The IDE attaches to the app service of the stack. You can use docker compose to manage the stack but be careful not to shutdown the app service. Use philomena commands instead that make sure the app service is always running.

Prerequisites for Remote SSH Development

If you are developing on a remote SSH host that runs a devcontainer, then make sure to configure port forwarding like this:

Port Forwarded Address
web:80 localhost:80
5173 localhost:5173

Yes, use the host:port notation for web:80. It's because the web service runs in a separate container.

Troubleshooting

If you are running Docker on Windows and the application crashes immediately upon startup, please ensure that autocrlf is set to false in your Git config, and then re-clone the repository. Additionally, it is recommended that you allocate at least 4GB of RAM to your Docker VM.

If you run into an OpenSearch bootstrap error, you may need to increase your max_map_count on the host as follows:

sudo sysctl -w vm.max_map_count=262144

If you have SELinux enforcing (Fedora, Arch, others; manifests as a Could not find a Mix.Project error), you should run the following in the application directory on the host before proceeding:

chcon -Rt svirt_sandbox_file_t .

This allows Docker or Podman to bind mount the application directory into the containers.

If you are using a platform which uses cgroups v2 by default (Fedora 31+), use podman and podman-compose.

Deployment

You need a key installed on the server you target, and the git remote installed in your ssh configuration.

git remote add production philomena@<serverip>:philomena/

The general syntax is:

git push production master

And if everything goes wrong:

git reset HEAD^ --hard
git push -f production master

(to be repeated until it works again)