]> git.immae.eu Git - github/shaarli/Shaarli.git/blame - doc/md/Upgrade-and-migration.md
**General rewording, proof-reading, deduplication, shortening, reordering, simplifica...
[github/shaarli/Shaarli.git] / doc / md / Upgrade-and-migration.md
CommitLineData
91a21c27 1# Upgrade and migration
53ed6d7d 2
91a21c27 3## Note your current version
b230bf20 4
48679a15 5If anything goes wrong, it's important for us to know which version you're upgrading from.
6c4cc14e 6The current version is present in the `shaarli_version.php` file.
b230bf20 7
fdf88d19 8
91a21c27 9## Backup your data
43ad7c8e 10
91a21c27 11Shaarli stores all user data and [configuration](Shaarli-configuration.md) under the `data` directory. [Backup](Backup-and-restore.md) this repository _before_ upgrading Shaarli. You will need to restore it after the following upgrade steps.
fdf88d19 12
91a21c27 13```bash
14sudo cp -r /var/www/shaarli.mydomain.org/data ~/shaarli-data-backup
15```
fdf88d19 16
91a21c27 17## Upgrading from ZIP archives
53ed6d7d 18
91a21c27 19If you installed Shaarli from a [release ZIP archive](Installation.md#from-release-zip):
fdf88d19 20
91a21c27 21```bash
22# Download the archive to the server, and extract it
23cd ~
24wget https://github.com/shaarli/Shaarli/releases/download/v0.X.Y/shaarli-v0.X.Y-full.zip
25unzip shaarli-v0.X.Y-full.zip
26
27# overwrite your Shaarli installation with the new release **All data will be lost, see _Backup your data_ above.**
28sudo rsync -avP --delete Shaarli/ /var/www/shaarli.mydomain.org/
29
30# restore file permissions as described on the installation page
31sudo chown -R root:www-data /var/www/shaarli.mydomain.org
32sudo chmod -R u=rwX /var/www/shaarli.mydomain.org
33sudo chmod -R g+rX /var/www/shaarli.mydomain.org/{index.php,application/,plugins/,inc/}
34sudo chmod -R g+rwX /var/www/shaarli.mydomain.org/{cache/,data/,pagecache/,tmp/}
35
36# restore backups of the data directory
37sudo cp -r ~/shaarli-data-backup/* /var/www/shaarli.mydomain.org/data/
38
39# If you use gettext mode for translations (not the default), reload your web server.
40sudo systemctl restart apache2
41sudo systemctl restart nginx
42```
fdf88d19 43
91a21c27 44If you don't have shell access (eg. on shared hosting), backup the shaarli data directory, download the ZIP archive locally, extract it, upload it to the server using file transfer, and restore the data directory backup.
1a47014f 45
91a21c27 46Access your fresh Shaarli installation from a web browser; the configuration and data store will then be automatically updated, and new settings added to `data/config.json.php` (see [Shaarli configuration](Shaarli-configuration.md) for more details).
fdf88d19 47
53ed6d7d 48
91a21c27 49## Upgrading from Git
53ed6d7d 50
91a21c27 51If you have installed Shaarli [from sources](Installation.md#from-sources):
fdf88d19
A
52
53```bash
91a21c27 54# pull new changes from your local clone
55cd /var/www/shaarli.mydomain.org/
56sudo git pull
fdf88d19 57
91a21c27 58# update PHP dependencies (Shaarli >= v0.8)
59sudo composer install --no-dev
fdf88d19 60
91a21c27 61# update translations (Shaarli >= v0.9.2)
62sudo make translate
fdf88d19 63
91a21c27 64# If you use translations in gettext mode (not the default), reload your web server.
65sudo systemctl reload apache
66sudo systemctl reload nginx
fdf88d19 67
91a21c27 68# update front-end dependencies (Shaarli >= v0.10.0)
69sudo make build_frontend
1a47014f 70
91a21c27 71# restore file permissions as described on the installation page
72sudo chown -R root:www-data /var/www/shaarli.mydomain.org
73sudo chmod -R u=rwX /var/www/shaarli.mydomain.org
74sudo chmod -R g+rX /var/www/shaarli.mydomain.org/{index.php,application/,plugins/,inc/}
75sudo chmod -R g+rwX /var/www/shaarli.mydomain.org/{cache/,data/,pagecache/,tmp/}
76```
1a47014f 77
91a21c27 78Access your fresh Shaarli installation from a web browser; the configuration and data store will then be automatically updated, and new settings added to `data/config.json.php` (see [Shaarli configuration](Shaarli-configuration.md) for more details).
1a47014f 79
91a21c27 80---------------------------------------------------------------
d7eb06bd 81
91a21c27 82## Migrating and upgrading from Sebsauvage's repository
53ed6d7d 83
84If you have installed Shaarli from [Sebsauvage's original Git repository](https://github.com/sebsauvage/Shaarli), you can use [Git remotes](https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes) to update your working copy.
fdf88d19
A
85
86The following guide assumes that:
43ad7c8e 87
53ed6d7d 88- you have a basic knowledge of Git [branching](https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell) and [remote repositories](https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes)
fdf88d19
A
89- the default remote is named `origin` and points to Sebsauvage's repository
90- the current branch is `master`
53ed6d7d 91 - if you have personal branches containing customizations, you will need to [rebase them](https://git-scm.com/book/en/v2/Git-Branching-Rebasing) after the upgrade; beware though, a lot of changes have been made since the community fork has been created, so things are very likely to break!
fdf88d19
A
92- the working copy is clean:
93 - no versioned file has been locally modified
94 - no untracked files are present
95
91a21c27 96### Step 0: show repository information
53ed6d7d 97
fdf88d19
A
98```bash
99$ cd /path/to/shaarli
100
101$ git remote -v
102origin https://github.com/sebsauvage/Shaarli (fetch)
103origin https://github.com/sebsauvage/Shaarli (push)
104
105$ git branch -vv
53ed6d7d 106* master 029f75f [origin/master] Update README.md
fdf88d19
A
107
108$ git status
109On branch master
110Your branch is up-to-date with 'origin/master'.
111nothing to commit, working directory clean
112```
113
91a21c27 114### Step 1: update Git remotes
53ed6d7d 115
fdf88d19
A
116```
117$ git remote rename origin sebsauvage
118$ git remote -v
119sebsauvage https://github.com/sebsauvage/Shaarli (fetch)
120sebsauvage https://github.com/sebsauvage/Shaarli (push)
121
122$ git remote add origin https://github.com/shaarli/Shaarli
123$ git fetch origin
124
125remote: Counting objects: 3015, done.
126remote: Compressing objects: 100% (19/19), done.
127remote: Total 3015 (delta 446), reused 457 (delta 446), pack-reused 2550
128Receiving objects: 100% (3015/3015), 2.59 MiB | 918.00 KiB/s, done.
129Resolving deltas: 100% (1899/1899), completed with 48 local objects.
130From https://github.com/shaarli/Shaarli
53ed6d7d 131 * [new branch] master -> origin/master
132 * [new branch] stable -> origin/stable
133[...]
134 * [new tag] v0.6.4 -> v0.6.4
135 * [new tag] v0.7.0 -> v0.7.0
fdf88d19
A
136```
137
91a21c27 138### Step 2: use the stable community branch
fdf88d19
A
139
140```bash
141$ git checkout origin/stable -b stable
142Branch stable set up to track remote branch stable from origin.
143Switched to a new branch 'stable'
144
145$ git branch -vv
53ed6d7d 146 master 029f75f [sebsauvage/master] Update README.md
147* stable 890afc3 [origin/stable] Merge pull request #509 from ArthurHoaro/v0.6.5
fdf88d19
A
148```
149
53ed6d7d 150Shaarli >= `v0.8.x`: install/update third-party PHP dependencies using [Composer](https://getcomposer.org/):
fdf88d19
A
151
152```bash
b230bf20 153$ composer install --no-dev
fdf88d19
A
154
155Loading composer repositories with package information
156Updating dependencies
157 - Installing shaarli/netscape-bookmark-parser (v1.0.1)
158 Downloading: 100%
159```
160
1a47014f
A
161Shaarli >= `v0.9.2` supports translations:
162
163```bash
164$ make translate
165```
166
167If you use translations in gettext mode, reload your web server.
168
91a21c27 169Shaarli >= `v0.10.0` manages its front-end dependencies with nodejs. You need to install [yarn](https://yarnpkg.com/lang/en/docs/install/):
d7eb06bd
A
170
171```bash
172$ make build_frontend
173```
174
fdf88d19
A
175Optionally, you can delete information related to the legacy version:
176
177```bash
178$ git branch -D master
179Deleted branch master (was 029f75f).
180
181$ git remote remove sebsauvage
182
183$ git remote -v
184origin https://github.com/shaarli/Shaarli (fetch)
185origin https://github.com/shaarli/Shaarli (push)
186
187$ git gc
188Counting objects: 3317, done.
189Delta compression using up to 8 threads.
190Compressing objects: 100% (1237/1237), done.
191Writing objects: 100% (3317/3317), done.
192Total 3317 (delta 2050), reused 3301 (delta 2034)to
193```
194
91a21c27 195### Step 3: configuration
53ed6d7d 196
48679a15
V
197After migrating, access your fresh Shaarli installation from a web browser; the
198configuration will then be automatically updated, and new settings added to
91a21c27 199`data/config.json.php` (see [Shaarli configuration](Shaarli-configuration.md) for more
48679a15 200details).
b230bf20
A
201
202## Troubleshooting
203
91a21c27 204If the solutions provided here don't work, see [Troubleshooting](Troubleshooting.md) and/or open an issue specifying which version you're upgrading from and to.
b230bf20 205