Still in heavy development. Not all features are available.
Hosting Rails applications requires significant expertise. Even with existing Postgres, Ruby installations, you still need to manage:
Our Docker solution provides:
While manual installations are possible, we can only provide support for Docker-based deployments.
⚠️ Proper email setup is REQUIRED before installation
Without transactional email configured, your installation WILL NOT function properly.
Key Requirements:
Transactional Email Service (Not regular email providers)
DNS Records:
SMTP Credentials:
These can be added to the commandline or added to the .env
file (see below).
SMTP_ADDRESS=smtp.yourprovider.com
SMTP_PORT=587
SMTP_USER_NAME=your_username
SMTP_PASSWORD=your_password
Verification Tip: When creating DKIM records, some hosts automatically append your domain. Verify the final record matches your provider’s public key exactly.
For a quick setup SQlite works fine for a low amount of users.
docker run -d \
-p 3000:3000 \
-e ADMIN=admin@example.com:password \
-v ./iterator-db:/usr/src/app/storage \
iteratorpm/iterator:latest
For a larger user base, a dedicated DB like PostgresSQL is recommended. You’ll need to setup the database yourself and provide the credentials.
docker run -d \
-p 3000:3000 \
-e ADMIN=admin@example.com:password \
-e DATABASE_URL=postgres://user:password@host.com/production
iteratorpm/iterator:latest
git clone https://github.com/iteratorpm/iterator
cd iterator
cp .env.example .env
# Edit .env with your email/SMTP settings
docker compose up -d --build
Update often to get the latest updates.
git pull
docker compose pull && docker compose up -d --force-recreate
git clone https://github.com/iteratorpm/iterator
cd iterator
cp .env.example .env
cp config/deploy.yml.example config/deploy.yml
# Configure config/deploy.yml and .env
gem install kamal
kamal setup
kamal deploy --skip-push
Update often to get the latest updates.
kamal deploy --skip-push
rails c
$ User.create! email: "your@email.com", password: "yourpassword", admin: true, confirmed_at: Time.now