From Frustration to Accomplishment: Building My First Concrete5 Website
Just figuring out how to deliver this blog to the sitemap has taken me almost three hours.
Armed with only ChatGPT and a determination to see this through, I’ve managed to get this far. I’m proud of some things but disappointed in others.
I’m disappointed that this project has consumed all my free time for three days. However, I’m very proud of my ability to stay focused and not give up.
This server runs on an old laptop in my house, using a Linux server. Setting that up took a full day of learning. I had never used Linux before, and to make the learning curve even steeper, I was setting up a headless server.
On the first day, I learned about SSH and how to use it to log into the server from a Windows PowerShell terminal. Surprisingly, this was easy once I figured it out. The real challenge began when I encountered the encrypted hard drive option. The server wouldn’t boot if I issued a reboot command—it would just hang on a screen asking for the hard drive password.
That’s when I dove into learning about Dropbear. The process was so frustrating it nearly gave me a headache. Almost immediately, I managed to lock myself out of SSH access. This led to hours of walking back and forth across my house to troubleshoot. Once I fixed that, I began wrestling with why Dropbear didn’t want to work properly.
Eventually, after hours of frustration, I decided the best way forward was to reinstall Linux without encryption. That concluded day one.
Day Two: Progress Amidst Setbacks
The second day began with reformatting the server. I set up MySQL, Apache, and Concrete5. By the end of the day, I’d purchased two domains and started setting up SSL certificates.
Instead of manually setting up SSL, I tried an application ChatGPT recommended. This backfired spectacularly. Everything stopped working, and I couldn’t figure out why. I uninstalled and reinstalled packages in an attempt to fix the problem but eventually admitted defeat and reformatted the server again.
Day Three: Gaining Ground
On the third day, I approached the project more confidently. I quickly got back to where I left off—just waiting for Concrete5 to install. Since I’d already done the domain and DNS setup the day before, things progressed smoothly.
However, I hit another snag. I wanted both domains to point to the server, but I didn’t realize this required configuration changes. In the process, I messed up some files on Concrete5. Luckily, I was learning more by this point and was able to recover without starting over.
Then I realized I’d forgotten my Concrete5 password. At this point, I decided to reinstall Concrete5 yet again. The process was much faster now, thanks to my growing familiarity with Linux.
Reflections and Lessons Learned
Reflecting on my earlier attempts to run a server on Windows, I’ve come a long way. Back then, I repeatedly broke things, reinstalled software, and ultimately shelved the project out of frustration.
This time, despite the setbacks, I feel a sense of accomplishment. I’ve learned to navigate Linux, manage files, and understand the architecture of a web server. I’ve even gained enough knowledge to ask better questions and challenge ChatGPT’s advice when necessary.
However, working with Concrete5 hasn’t been all sunshine and roses. While I appreciate its advanced features, I hate the template I initially chose and wish I’d started with a blank website. I’ve spent hours removing unnecessary parts and slowly learning how to navigate the backend.
I suspect I’ll need to write some SQL scripts for my lists to work properly—something I’m not thrilled about. But if it’s necessary, I’ll take on that challenge another day.
Closing Thoughts
This is post number one, documenting my journey in creating this website—my first project for this platform. I drafted this post in the website itself, had it checked and adjusted by ChatGPT, and posted it through the sterile backend of the server, which still feels a bit unnatural to me.
Until next time,
—Dave