Fully-featured spear-phishing toolkit - API and job queue
NOTE: this is only backend component for pompa web frontend. Please use pompa-docker repository for a full deployment base and read the wiki.
You will need the following things properly installed on your computer:
- Git
- RVM
- Ruby installed using RVM (version 2.5.1 or higher)
- Bundler
- PostgreSQL including citext, trgm and tablefunc extensions
- Redis
- libsodium
git clone https://github.com/m1nl/pompa-api.gitcd pompa-apiecho pompa > .ruby-gemsetrvm usegem install bundlerbundle installrvm wrapper `pwd`/bin/model-sync
cd configcp database.yml.sample database.ymlcp pompa.yml.sample pompa.ymlcp secrets.yml.sample secrets.ymlcp sidekiq.yml.sample sidekiq.yml- Edit the files according to your needs
- Be sure to update secrets in the production environment in secrets.yml
Pompa uses PostgreSQL as DB backend. No other backends are supported right now.
Steps for DB configuration (valid for Ubuntu, Debian and CentOS):
- Replace _USER_ with your local system user
sudo -u postgres psqlCREATE USER _USER_;CREATE DATABASE pompa_dev OWNER <USER>;\c pompa_devCREATE EXTENSION citext;CREATE EXTENSION pg_trgm;CREATE EXTENSION tablefunc;\q- No modifications to sample database.yml should be required.
When Redis is run on the same machine, usage of UNIX socket is preferred. Verify if correct path is provided in pompa.yml for Redis and if your system user has required privileges. Usually you will need to be a member of local redis group to be able to access the socket.
It is recommended to set the following option in redis.conf file:
maxmemory-policy volatile-lfu
Terminal 1 (API server):
rails db:migraterails server
Terminal 2 (job queue):
bundle exec sidekiq
Terminal 3 (notifications from DB):
bin/model-sync
Web browser:
- Visit the API at http://localhost:3000.
pompa is released under the terms of lgpl-3.0.
Mateusz Nalewajski
Please contact me directly at mateusz-at-nalewajski-dot-pl