If You Write Articles or Blog Posts Often, You Should Definitely Run WordPress on Your NAS✍️

Do ideas always seem to hit you on the move, maybe on a high-speed train, on a flight, or in a cafe with terrible signal? You want to draft a post, polish the layout, and keep writing, but the tools around you are either awkward or completely dependent on the internet. Once the connection drops, the whole writing flow can fall apart, and sometimes your hard-written text may even disappear.

So in this post, I want to introduce an open-source, all-in-one blog deployment platform that is genuinely worth trying: WordPress.

Project Introduction

Project address: GitHub - nezhar/wordpress-docker-compose: Easy Wordpress development with Docker and Docker Compose · GitHub

WordPress is like a “web version of a Word editor plus a super-powered site manager.” It is a fully open-source and free content management system (CMS). You do not need to know a single line of HTML, and you do not need to understand programming. If you can type in Word and post on Twitter, you can use WordPress to build a beautiful, powerful, professional website almost like stacking blocks.

It also has one of the largest open-source ecosystems in the world. Tons of themes let you switch your site style with one click, while thousands of plugins let you customize features as freely as installing apps on your phone.

For daily writing, WordPress uses a modern “what you see is what you get” block editor. Whether you want to insert a high-resolution gallery, audio, or video, you can simply drag and drop. The layout process feels as intuitive as putting together a puzzle, and what you see while editing is exactly what your readers will see. It is a low-barrier way to build your own international publishing home. :tada:

Deployment Process :package:

Here I will use PocketCloud NAS as an example and deploy WordPress with Docker Compose.

  1. In Config File Path, select Docker Space. This is where the docker-compose.yaml file will be stored.

  1. Paste the configuration file below into it. (Note: this configuration uses relative paths, so the mapped directories will be created under the same path as the Config File Path.)
  2. Click Create.

The deployment configuration is as follows:

version: '3'

services:
  wp:
    image: wordpress:latest # https://hub.docker.com/_/wordpress/
    network_mode: bridge
    ports:
      - 19803:80 # change port if required
    volumes:
      - ./config/wp_php.ini:/usr/local/etc/php/conf.d/conf.ini
      - ./wp-app:/var/www/html # Full wordpress project
      - ./plugin-name/trunk/:/var/www/html/wp-content/plugins/plugin-name # Plugin development
      - ./theme-name/trunk/:/var/www/html/wp-content/themes/theme-name # Theme development
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_NAME: "wordpress"
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: "password" # Enter your password here
    depends_on:
      - db
    links:
      - db

  pma:
    image: phpmyadmin:latest  # https://hub.docker.com/_/phpmyadmin
    network_mode: bridge
    environment:
      # https://docs.phpmyadmin.net/en/latest/setup.html#docker-environment-variables
      PMA_HOST: db
      PMA_PORT: 3306
      MYSQL_ROOT_PASSWORD: "password" # Enter your database password here
      UPLOAD_LIMIT: 50M
    ports:
      - 19804:80 # change port if required
    links:
      - db:db
    volumes:
     - ./config/pma_php.ini:/usr/local/etc/php/conf.d/conf.ini
     - ./config/pma_config.php:/etc/phpmyadmin/config.user.inc.php

  db:
  
    image: mysql:latest # https://hub.docker.com/_/mysql/ - or mariadb https://hub.docker.com/_/mariadb
    network_mode: bridge
    ports:
      - 19805:3306 # change port if required
    command: [
        '--character-set-server=utf8mb4',
        '--collation-server=utf8mb4_unicode_ci'
    ]
    volumes:
      - ./wp-data:/docker-entrypoint-initdb.d
      - ./wp_db_data:/var/lib/mysql
    environment:
      MYSQL_DATABASE: "wordpress"
      MYSQL_ROOT_PASSWORD: "password" # Enter your database password here

volumes:
  db_data:

Quick Tour :eyes:

After deployment is complete, open your browser and enter {NAS_IP}:19803 to access the WordPress setup page. Select the language you want, then click Continue.

Create an account. If you only plan to use it yourself, the email can be any address that follows the correct email format. After filling in the required information, click Install WordPress.

Now the initial setup is done. Click Log In and you can start using it.

After logging in successfully, you will enter the WordPress admin dashboard. Click Appearance to choose a site theme you like.

Click Add Theme.

You can see that WordPress offers a huge variety of themes here. Pick one that fits your style, install it, and then apply it to your site.

All right, I have installed a theme. Now let us take a look at how it looks.

Go to Posts to view your current posts. From here, you can check existing posts or add a new one.

Oh, this looks pretty good! You should definitely give it a try too. :rocket:

Final Thoughts

WordPress is not just for writing diaries or publishing simple blog posts. Today, more than 40% of websites worldwide are built with WordPress, and its use cases are almost limitless:

  • Personal blogs and long-form content: This is WordPress at its best. Beautiful formatting, clear categories, and a powerful tag system help your writing and ideas settle into a polished home.
  • Visual art and photography portfolios: With the right theme, WordPress can become a borderless high-resolution gallery that presents your photography, illustrations, handmade projects, or vlogs beautifully to the world.
  • Your own online store: With plugins like WooCommerce, it can instantly turn into an independent e-commerce website with product listings, shopping carts, online payments, and order tracking, helping you move away from third-party platform commissions.
  • A private personal knowledge base, or digital garden: You can keep it private and use it as a family diary, recipe library, travel album, or personal study notebook.

If this sounds useful to you, deploy it on your NAS and try it out.

1 Like