Go to file
2024-11-20 15:37:15 +01:00
.github/workflows Spring cleaning 2024-11-20 14:14:27 +01:00
bin Spring cleaning 2024-11-20 14:14:27 +01:00
config Spring cleaning 2024-11-20 14:14:27 +01:00
db/migrate Spring cleaning 2024-11-20 14:14:27 +01:00
lib Ensure consistent ordering by date and ISO code 2024-11-20 14:58:17 +01:00
spec Remove simplecov 2024-11-20 14:45:40 +01:00
.dockerignore Use or infer from .ruby-version 2021-05-12 13:12:21 +01:00
.env.example Rebrand, serve HTML 2018-06-08 15:32:52 +01:00
.gitignore Clean up ignores 2019-12-20 01:02:07 +00:00
.rubocop_todo.yml Fix rubocop offenses 2023-02-28 16:49:48 +00:00
.rubocop.yml Spring cleaning 2024-11-20 14:14:27 +01:00
.ruby-version Bump ruby and gems 2024-10-03 22:17:17 +02:00
config.ru Spring cleaning 2024-11-20 14:14:27 +01:00
docker-compose.yml feat: add a docker-compose.yml with included database for more convenient self-hosting 2024-11-17 22:21:13 +01:00
Dockerfile Fix Dockerfile 2024-10-03 22:22:42 +02:00
Gemfile Remove simplecov 2024-11-20 14:45:40 +01:00
Gemfile.lock Remove simplecov 2024-11-20 14:45:40 +01:00
LICENSE Remove dates from license 2017-01-03 12:44:13 +00:00
Rakefile Spring cleaning 2024-11-20 14:14:27 +01:00
README.md Update README 2024-11-20 15:37:15 +01:00

Frankfurter

Build

Frankfurter is a free and open-source currency data API that tracks reference exchange rates published by the European Central Bank.

Deployment

Using Docker

The simplest way to run Frankfurter is with Docker:

docker run -d -p 8080:8080 \
  -e "DATABASE_URL=<postgres_url>" \
  --name frankfurter hakanensari/frankfurter

Using Docker Compose

For a complete setup including PostgreSQL:

  1. Copy the docker-compose.yml file
  2. Run:
docker compose up --wait

Contributing

Frankfurter is built with Ruby. To contribute:

  1. Fork.
  2. Install dependencies with bundle install.
  3. Run tests with bundle exec rake.
  4. Push your changes to a feature branch.
  5. Open a pull request.

Roadmap

  • Infrastructure

    • Migrate from PostgreSQL to SQLite for simpler deployment.
    • Add API versioning in URL path.
  • Data Sources

    • Add support for multiple data providers.
      • IMF
      • Other central banks
  • API Features

    • Add GraphQL endpoint.