Giter Site home page Giter Site logo

ivvvve / dokku-wordpress Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dokku-community/dokku-wordpress

0.0 0.0 0.0 50 KB

A simple repository that will guide you through deploying wordpress on dokku

License: MIT License

PHP 31.80% Makefile 68.20%

dokku-wordpress's Introduction

WordPress on Dokku

A repository to help you setup WordPress on a Dokku server.

Requirements

  • A Dokku server. Tested on 0.7.2+
  • The dokku-mysql or dokku-mariadb plugin
  • make installed locally
  • curl or wget installed locally

Usage

This repository generates an app directory based on environment variables, as well as instructions for configuring your app on the Dokku server.

Plugins and Uploads will be stored on the host using persistent storage. Unless you do similar with themes, this setup will expect them to be distributed with the wordpress installation.

To use, run the following (and then read the instructions!):

# both APP_NAME and SERVER_NAME are required
# export the server name (or ip)
export SERVER_NAME=dokku.me

# export the app name
export APP_NAME=blog

# generate the repository and follow the output directions
make build

You can also specify a custom WordPress version:

export WORDPRESS_VERSION=3.7.16

make build APP_NAME=blog SERVER_NAME=dokku.me

Want a mostly unattended installation? You can also execute it with the UNATTENDED_CREATION environment variable. You will only need to create the requisite persistent storage directories and push the repository. All configuration will be manually performed using the dokku user against the configured SERVER_NAME.

export UNATTENDED_CREATION=1

make build APP_NAME=blog SERVER_NAME=dokku.me

You can also destroy an existing wordpress installation:

make destroy APP_NAME=blog SERVER_NAME=dokku.me UNATTENDED_CREATION=1

After Installation (Optional)

Modify Upload File Size Limit

Put .user.ini file at the root of your folder with the following content:

upload_max_filesize = 256M
post_max_size = 256M

Then use the following command to push to dokku

git add .
git commit -m "Modify Upload File Size Limit"
git push dokku master

Upgrading Wordpress

To upgrade to a later version of Wordpress, pull the later version of wordpress into your generated local repo and push it. For example, to upgrade the dokku-wordpress generated app mywp to version 4.9.8 of Wordpress:

cd mywp
git remote set-branches --add origin 4.9.8
git fetch origin 4.9.8:latest
git merge -X theirs latest

If you get any conflicts run git merge-tool and answer "d" (to delete) for each file in conflict, if any. Then git commit to complete the merge.

git push dokku master

Warning: A 'traditional' upgrade performed using Wordpress's own UI based upgrade process will not survive a server app restart (due to the ephemeral nature of the underlying docker based filesystem) and thus should not be attempted if you want to persist the upgrade.

Plugins

Plugins stored in wp-content/plugins and uploads stored in wp-content/uploads are given special persistence via the dokku storage:mount commands in this installation process.

Plugins should thus be installed via Wordpress's own UI based installation method and will persist across remote reboots and won't get affected by subsequent git pushes when upgrading. Manual installation by copying plugins into the local git repo and pushing them up will not work.

Themes

The wp-content/themes directory is not given any special persistence on the remote server. So whilst there is persistence whilst the Wordpress app is running and themes will successfully install - any such new themes or theme customisations will not survive a remote app restart/server reboot. Thus any custom themes should be copied into wp-content/themes in the local git repo and pushed up.

Tip: It can be tricky to view the state of the filesystem that your wordpress app actually resides in, because of the layered nature of the underlying docker filesystem. To view the actual filesystem of your wordpress app 'mywp' on server 'dokku.me': ssh into your server e.g. ssh [email protected] then dokku run mywp bash then ls /app/wp-content/. Alternatively install a Wordpress file manager plugin to view and download new/customised theme files on the remote server and into your local repo.

When upgrading using the above Wordpress upgrade instructions - any custom themes in the local repository will be deleted in order to synchronise perfectly with the fresh new version of Wordpress. To preserve extra/customised themes back them up before upgrading the local repo and restore them into the local wp-content/themes directory after the upgrade. Alternatively do not delete the files you want to keep during the git merge-tool step of the local upgrade process - though be careful as you probably want to replace default themes to be compatible with the new upgraded version of Wordpress.

dokku-wordpress's People

Contributors

josegonzalez avatar tlongren avatar kjschulz avatar babarinde avatar axilleas avatar abulka avatar gnowland avatar webknjaz avatar omgimalexis avatar chrisdobler avatar ivvvve avatar jimmy0017 avatar mochnatiy avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.