Ever needed to get together with someone, schedule a meeting, or a support call but not sure if the next person will be or is available at some point in time? Yeah, we've all been there.
In a corporate environment, many platforms offer that kind of functionality. Exchange, O365, and the like, but for a small team those kinds of systems might not be needed, as they are an overkill to simply get a slot in the calendar.
If we want to step away from the commercial segment altogether, and maybe self-host a solution, things get even more complicated. For some time I have been looking into a nice, easy, and quick way to set up a poll to book a calendar date.
While there are many options out there, just recently have I stumbled upon Rallly.co.
In this article, we will cover how to get Rallly up and running in Docker, as well as how it works, and whether this is the next Doodle alternative for you.
Setting up Rallly in Docker
Rallly is indeed a light and simple platform from a configuration standpoint, and personally much easier to set up than for example Cal.com (another similar app, same as the beforementioned Doodle).
Built with a solid foundation of both Next.js and Prisma, Rallly is fast, stable, modern, and functional.
Created by Luke Vella, this is a platform that can be up and running in a matter of minutes, configured behind a reverse proxy, and pushed into the world to be used on any modern desktop or mobile device. The users of this platform don't even have to register to confirm a meeting.
Like most things today, Rallly is officially supported on Docker, and Luke maintains the image hosted on hub.docker.com. It is this exact image that we will use to get started as well as the Postgres instance (an already running one will work as well) for database operations.
The documentation for Rallly is very well done and can provide all the steps needed to get going. However, it is based on running docker-compose from a command line, so if that is not your cup of tea, and would like a different approach, keep reading.
For those familiar with how I like to run Docker deployments, you know that Portainer is my No.1 method, but of course not the only one. In case anyone wants to use any other docker-compose compatible solution or the command line, you are welcome to it.
To run this solution using docker-compose we can either clone the Github repository, alter the
env variable and run it (as suggested via the documentation), or in case we already have Postgres running as a separate container, use the following compose to create Rallly instance.
All of the variables used in this compose file are from the official documentation found here, but here are just a few pointers for some of those.
NEXT_PUBLIC_BASE_URL - use the domain name including the protocol (http or https) with no trailing slashes or URLs with paths/subfolders.
SECRET_PASSWORD - A random 32-character secret key used to encrypt user sessions. To generate it we can use the following command:
openssl rand -base64 32
SMTP_HOST are also two remaining mandatory variables, that need to be configured. The email address and the host don't have to be from the same domain but are needed for this platform to work.
Using an external Postgres DB as in this example we need to have it running as well. Below is an example of a docker-compose.
Following the Postgres instance, we could use another container to manage the said instance by running pgAdmin web UI.
How it works?
By starting a poll, with Rallly we will be able to create an event of any kind and set up various dates and times that we would like the participants to vote on.
By default, comment section will be allowed, so participants can also post suggestions and other various comments regarding the poll.
Another great feature that this platform offers is on the fly time zone change. This can come in handy if we want to verify how the meeting will be presented to other participants in their time zone.
Once the meeting has been booked an email notification will be sent to all the participants with a confirmation and an ICS file so all the information can be imported into a calendar.
In terms of compatibility, the title, location, and description fields will be correctly populated in the calendar (iOS and macOS), but there will of course be no option to get alerts unless we set one in the cal app ourselves.
Personally, so far I am very pleased with the solution, as it is fast, mobile-friendly, and gets the job done. What I would like to see is maybe an option to implement webhook or push notification options. At the moment, any new comment, date choosing, etc, gets sent via an email, including the login process as stated above.
To minimize the number of emails it might come in handy for this platform to support some sort of method of notifications that does not include an email, and that way only login and confirmation emails would arrive.
Another feature that Rallly does not have is integration with other services, such as Zoom, Teams, and the like. From a user perspective, it would come in handy to have service-linked URLs, but then again, nothing prevents the organizer before finalizing the event from adding a Zoom link URL based on all the dates and times that work for all the participants.
Not a deal breaker for me, but these are some features that might come at a later date to further enhance the overall experience.
With all that said, Rallly is a well-built platform that will get the job done, and maybe this is the self-hosted alternative you were looking for.