# From Static to Dynamic: How I Migrated my Website to Ghost CMS on DigitalOcean

One of the main reasons I decided to migrate my blog from the previous version built with [Pelican static site generator](https://getpelican.com/?ref=dmytro-litvinov) for [https://blog.dmytrolitvinov.com](https://blog.dmytrolitvinov.com/?ref=dmytro-litvinov) to [Ghost CMS](https://ghost.org/?ref=dmytro-litvinov) was because I wanted to create and manage my content more easily. With Ghost CMS, I found it easier to focus on writing and creating new content, rather than spending time on technical maintenance or worrying about the design of my website.

In images below you can see old version of website. Homepage was built using [dev-landing-page](https://github.com/flexdinesh/dev-landing-page?ref=dmytro-litvinov) GitHub repo and hosted using [GitHub Pages](https://pages.github.com/?ref=dmytro-litvinov).

![Old version of homepage https://DmytroLitvinov.com using dev-landing-page](https://cdn.hashnode.com/res/hashnode/image/upload/v1678053201170/48b7316f-6790-4b42-b6f0-aa6f29e8b6f8.webp align="left")

*Old version of homepage https://DmytroLitvinov.com using dev-landing-page repo*

![Old version of https://blog.dmytrolitvinov.com using Pelican static site generator](https://cdn.hashnode.com/res/hashnode/image/upload/v1678053202159/71ea6213-4d33-4fdc-9ffe-febc530fa337.webp align="left")

*Old version of https://blog.dmytrolitvinov.com using Pelican static site generator*

Migrating to Ghost CMS hosted on [DigitalOcean](https://m.do.co/c/0bafff05bdec?ref=dmytro-litvinov) (registering using my referral link will give you 200$ for 60 days) was a great move for my website. Ghost CMS is a user-friendly, powerful, and modern platform designed specifically for bloggers and content creators. Its intuitive interface, customizable themes, and powerful editor made it an ideal solution for my blog.

To begin, I signed up for a DigitalOcean account and created a droplet (virtual machine) with Ubuntu using [Ghost 1-Click App](https://marketplace.digitalocean.com/apps/ghost?ref=dmytro-litvinov) which allowed me to self-host my own Ghost instance up and running in two minutes.

After installing Ghost CMS, I was able to customize my theme. Ghost CMS offers a variety of themes and plugins to enhance website, and its powerful editor allowed me to create beautiful and engaging content without any coding knowledge. As a theme for my website I found out a really cool theme called [smart](https://github.com/royalfig/smart?ref=dmytro-litvinov) (Hi Ryan if you are reading it 👋)

One of the main reasons I chose a self-hosted solution was to have full control over my website. With Ghost CMS hosted on DigitalOcean, I am able to manage my website and make changes whenever I want. Overall, migrating to Ghost CMS on DigitalOcean was a smooth and easy process, and I am very satisfied with the results.

After migration I stacked with some of problems like:

1. A lot of redirects because of SSL in CloudFlare.  
    Solution: [https://blog.lanway.dev/too-many-redirects-on-ghost-blog-install/](https://blog.lanway.dev/too-many-redirects-on-ghost-blog-install/?ref=dmytro-litvinov)
    
2. No swap on server (not a big deal, but still)  
    Solution: [https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-22-04](https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-22-04?ref=dmytro-litvinov)
    
3. Setup of MailGun  
    Solution: [https://forum.ghost.org/t/502-bad-gateway-after-reboot-the-server-any-hep/36203/14](https://forum.ghost.org/t/502-bad-gateway-after-reboot-the-server-any-hep/36203/14?ref=dmytro-litvinov)
