Webserver to test HTTP proxies

Build image


Download images

docker pull feduxorg/www_test_server

Run image

Make sure no other server process is bound to port 3000 locally.

# Maybe use need to run this command with `sudo` prefixed
docker run \
  --name www_test_server-1 \
  --rm \
  -p 3000:3000 \

Alternatively install docker-compose and run the whole bunch of images:

# Maybe use need to run this command with `sudo` prefixed
docker-compose up \
  --force-recreate \
  --always-recreate-deps \
  --abort-on-container-exit \
  --renew-anon-volumes \


The image includes a script /srv/app/Init which sets up the roles admin, user and guest. It also creates a user called [email protected] with password *Test123. After creating another admin-user you can safely remove the bootstrapped admin user.

docker exec -it www_test_server-1 bash
rake db:seed


If you want to run another database than SQlite you need to pass the DATABASE_URL-environment variable to the container.

# SQLite

# mind the / at the very beginning of the path

# Postgres
# Make sure your hostname does not include "underscores"
# this does not work with the default URL library used by ruby
DATABASE_URL="postgresql://user:[email protected]/database?pool=5&encoding=unicode"

Run the container

docker run \
  --name www_test_server-1 \
  -e DATABASE_URL="postgresql://user:[email protected]/database?pool=5&encoding=unicode" \
  --rm \
  -ti \
  -p 3000:3000 \

Authentication and Authorization

All users and (hashed) passwords are stored in the same database "Rails" uses. Users can use most features of the web application. But only administrators are able to:

  • Create new and modify existing users
  • Upload new/Change existing/Delete existing files

After adding a user you need to approve it. Otherwise the user cannot sign in.

Modify image

Modify Domain for registering users

You need to replace config.action_mailer.default_url_options with an appropriate value for your environment in app/config/environments/production.rb. By default it's { host: 'localhost', port: 3000 }.