Recently I did a live stream ( I’m trying to do those every Sunday moving forward I’ve done a couple of them here recently) but in the last live stream we did I talked about or very briefly I talked about a docker container called Monica and Monica is basically like a CRM (a
customer relationship management software) that you can run in docker.
Monica is more of a personal relationship management software so a bit more detailed in certain areas a little less detail in other areas but definitely geared towards relationship management on a more personal level.
So in this video I want to show you first what Monica looks like and how it works that sort of thing. And then I’ll show you not only how to install it but then how to make it available to the internet or from the internet so that you can have access to it anywhere.
It does support arm, arm64, x86/64. Lots of good information in here as far as what’s available and if you’re ever not sure if a container is compatible with your device you can always go to their hub.docker.com page and look for the tags link and see what OS and architecture it’s compatible with.
I’ve got a demo instance that I’ve got setup and running. This is all demo content and I want to be very clear that all of the contacts and images and everything in here I actually pulled from from this site where they’re talking about an android emulator or something. But I found that there’s a contacts.vcf file that I was able to download and then use for the sake of this video.
So now if I come back up to here there’s nothing in here blank screen so let’s let’s add our first contact the way we’re going to do that is we’re just going to click that button and then we can just fill in the information that we want to here and then click submit add
somebody else or just add this one and move on.
Installing Monica in Docker
So now let’s take a look at how to actually deploy Monica both for local as well as web-based use. Here’s the hub.docker.com page.
Right here is the the stack that I made you could you know export this as a docker-compose.yml file and deploy it via CLI.
|– APP_KEY=MiHe3JFtqFwnFaLC2X8tUzXsk56ExAKD #change this to another 32 character string.|
We’re gonna do everything through stacks though so what I’m gonna do is actually just is to copy this into the docker-compose area.
Then we’ll kind of run through this so that’s the version two stack. The services we’re actually gonna have will be the application the other will be the database.
The app image here is Monica it depends on the database of course that’s our host down here the port is set to 8485. You could of course change that to be you know basically whatever you wanted it to be as long as you don’t mess with the second half of this you can change that to whatever.
Below that we’ve got an app key that needs to be 32 characters and it can’t have any special characters in it from my experience or it just doesn’t work.
Below that we’ve got the database host and that’s just going to be “db”. Again we’re pulling that from the second service that’s down here.
The volumes you’ll want to map these volumes to wherever you map or wherever you store your configuration files for your application.
Below that we’ve got our second service for your database and we’re using the MYSQL 5.7 image for that.
The root password we’re just going to say let that be random we don’t care what that is.
The MYSQL database is going to be Monica.
The MYSQL user is homestead and the password is secret I encourage you to change the password if nothing else.
Below that we’ve got a volume for the database so wherever you want to mount your database.
And then below that restart always.
So now that we’ve got all of this set up and ready to go all we’ve got to do is come down here and click on deploy the stack.
The MYSQL image is about 450MB and then the Monica image is about 700 megs so about a gig to a gig and a half to download and deploy.
Once things are are wrapped up and ready to go now we’re going to head over to http://your-server-ip:8485 and create an account.
Now you’re ready to go back and add your first contact like we did already.
Now look this is only available on my local network here so in order to change that and make it accessible from the internet there’s a few things we’ll need to do. The first thing of course you’ll need a domain name you’ll i like to get all my domain names from porkbun.
I also run all my DNS through Cloudflare for a couple of reasons. One, it hides my IP address so even if somebody does find one of my domain names and pings it they won’t they won’t get my home IP address.
They’ll get a Cloudflare ip address so that’s one of the reasons I like to use it also they support or they give out free SSLs so we’re going to do that as well.
So the next thing we want to do is jump over to Cloudflare and set up a subdomain for this and then also go over to NGINX proxy manager and set one up there as well.
Once that’s done, we’ll head back over to Portainer and edit the Monica application container.
Click “Duplicate/Edit” and scroll down to environmental variables.
Click “add environmental variable”.
Then scroll down to the bottom of the list and add “APP_ENV” to the name field and “production” to the value field. Do NOT include the quotes.
Then we’ll scroll back up and click on deploy the container and say replace.
Now go back over to CloudFlare and change “DNS only” to “Proxied”.
So that’s how to set up Monica that’s how to go through and use Monica as well. This is something that I will be adding to my regular server so that I’ve got it available so I can keep track of relationships and things like that a bit better than say like Facebook helps me do.
For more Docker content, click here!
Join this channel to get access to perks:
Remember to leave a like on this video and subscribe if you want to see more!
Like what I do? Want to be generous and help support my channel? Here are some ways to support:
Here’s my YouTube Merch Store:
Here’s my Amazon Influencer Shop Link: