Rallly - a simpler way to set up meeting times
Yes that's three l's there. And yes I said simpler, though to be honest I'm not so sure.

Rallly is a poll creator, which allows you to give date and time options to friends or work colleagues to help set up a specific meeting or event. It works by creating a link to the poll, which the creator can then send out to their target group or audience.
Among its features is the ability to take part in a poll without needing to log in or provide contact details (though the poll creator should use an email they have access to so that they can a) modify the poll if necessary, and b) receive update emails on participants and poll results).
And, it's self-hostable. Let's get into it.
Prerequisites
You should have:
- Docker and docker-compose installed on your machine
- The ability to SSH or use CLI/terminal on your machine, or use Portainer to spin up your stacks
- Some sort of access and relevant permissions to manage and create new directories
Gitinstalled on your machine as we'll need to clone the repo
If you want to have Rallly email you/your users
- An ability to set up an SMTP email account
- This could be using the built-in Gmail smtp ability on your account, or a separate service you use, such as https://eforw.com
If you want to share and/or access Rallly from outside your network
- You should have your own domain name with a fully functioning reverse proxy (check out my SWAG article, and I recommend Cloudflare as an incredibly feature-packed, not to mention free CDN)
- A
proxydocker network (either called proxy or something else, this is the network you use for your reverse proxy/SWAG container to communicate with the services it acts as RP for) - You know how to create the relevant A or CNAME records and reverse proxy configurations
Prepping the file system
- Navigate to the directory you keep your docker compose folders in
- Clone the github repo by copy pasting the following:
git clone https://github.com/lukevella/rallly.git- It should download quickly, after which you should see a new folder called
rallly - Open that directory, and you will see a number of folders and files. We are primarily interested in
docker-compose.ymlandsample.env
Prepping the container files
- Locate the
sample.envfile and copy it, renaming it to.env
this can be done in CLI/terminal by typing cp sample.env .env- Open the new
.envfile, then copy and past the following into it:
NEXT_PUBLIC_BASE_URL=http://localhost:3000 #change url and/or port as necessary
DATABASE_URL=postgres://postgres:postgres@rallly_db:5432/db #do not change
SECRET_PASSWORD=insert a random 32-long character string
SUPPORT_EMAIL=email@example.com
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_SECURE=false #change to true if your server is TLS enabled
SMTP_USER=user
SMTP_PWD=password- Save the file. You can now close it, but you may want to come back to it later
you can check out all possible config variables here
DATABASE_URL can be removed when using docker. I've found that removing this variable broke the installation (the gui would load up, but no polls could be created. Up to you if you want to try it without)- Locate and open the
docker-compose.ymlfile. You'll see it's pre-populated, but we're going to copy over it. Please paste the following, completely replacing the existing content:
version: "3.3"
services:
rallly_db:
image: postgres:14.2
restart: unless-stopped
container_name: rallly-db
volumes:
- db-data:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=postgres
rallly:
build:
context: .
args:
- DATABASE_URL=postgres://postgres:postgres@rallly_db:5432/db?pgbouncer=true
- NEXT_PUBLIC_BASE_URL=${NEXT_PUBLIC_BASE_URL}
restart: unless-stopped
container_name: rallly
command: sh -c "yarn prisma migrate deploy --schema prisma/schema.prisma && yarn start"
depends_on:
- rallly_db
ports:
- 3000:3000 #change before the `:` if necessary to avoid port conflicts
environment:
- DATABASE_URL=postgres://postgres:postgres@rallly_db:5432/db
env_file:
- .env
networks:
- default
#uncomment and modify the following to user your reverse proxy
# - proxy
volumes:
db-data:
driver: local
networks:
default:
name: rallly
ipam:
config:
- subnet: 172.xx.0.0/29 #change subnet as necessary
#uncomment and modify the following to use your reverse proxy
# proxy:
# external: true
A couple of things to note here:
- If you change the mapped port in the
ralllyservice, then make sure to change it in the.envNEXT_PUBLIC_BASE_URLvariable too - If you plan to use a reverse proxy to access rallly, uncomment the
proxynetwork in theralllyandnetworksblocks and change the name (if necessary) to your reverse proxy network. You will also need to change theNEXT_PUBLIC_BASE_URLin the.envto yourhttps://polls.domain.comor whatever you're calling it
You're now ready to build the environment and create the containers.
Creating the containers and accessing the gui
In our docker-compose file you'll notice that the rallly service has a build command. When we run docker-compose up for the first time, this will download and install dependencies for the service.
- Inside the same directory as your
docker-compose.ymlfile, type indocker-compose -p "rallly" up -d, and you'll see a lot of downloading and building taking place
The dependencies will be downloaded and installed first, and once complete, the containers will be created.
- Once finished, you should have your two containers,
ralllyandrallly-dbcreated - Double check the logs if you want, otherwise access the gui at either
http://localhost:3000(change the port if necessary as per your compose file) or  your version ofhttps://polls.domain.com

From here, you can either click View demo to get a feel for the service, or create your own poll by clicking Get started. Let's go ahead and do that.

Fill out all the info on this and the following pages, and you should end up with a (non participated) poll.

By clicking the Share button top right, you get a link for either a participant or an admin (who can modify the poll) and a Copy Link button which will let you send it out to your participants.
And that's mostly it. Check out the Preferences and Manage buttons to access other options, happy polling!
Related Articles



