]> git.immae.eu Git - github/shaarli/Shaarli.git/blame_incremental - 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
1# Upgrade and migration
2
3## Note your current version
4
5If anything goes wrong, it's important for us to know which version you're upgrading from.
6The current version is present in the `shaarli_version.php` file.
7
8
9## Backup your data
10
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.
12
13```bash
14sudo cp -r /var/www/shaarli.mydomain.org/data ~/shaarli-data-backup
15```
16
17## Upgrading from ZIP archives
18
19If you installed Shaarli from a [release ZIP archive](Installation.md#from-release-zip):
20
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```
43
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.
45
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).
47
48
49## Upgrading from Git
50
51If you have installed Shaarli [from sources](Installation.md#from-sources):
52
53```bash
54# pull new changes from your local clone
55cd /var/www/shaarli.mydomain.org/
56sudo git pull
57
58# update PHP dependencies (Shaarli >= v0.8)
59sudo composer install --no-dev
60
61# update translations (Shaarli >= v0.9.2)
62sudo make translate
63
64# If you use translations in gettext mode (not the default), reload your web server.
65sudo systemctl reload apache
66sudo systemctl reload nginx
67
68# update front-end dependencies (Shaarli >= v0.10.0)
69sudo make build_frontend
70
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```
77
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).
79
80---------------------------------------------------------------
81
82## Migrating and upgrading from Sebsauvage's repository
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.
85
86The following guide assumes that:
87
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)
89- the default remote is named `origin` and points to Sebsauvage's repository
90- the current branch is `master`
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!
92- the working copy is clean:
93 - no versioned file has been locally modified
94 - no untracked files are present
95
96### Step 0: show repository information
97
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
106* master 029f75f [origin/master] Update README.md
107
108$ git status
109On branch master
110Your branch is up-to-date with 'origin/master'.
111nothing to commit, working directory clean
112```
113
114### Step 1: update Git remotes
115
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
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
136```
137
138### Step 2: use the stable community branch
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
146 master 029f75f [sebsauvage/master] Update README.md
147* stable 890afc3 [origin/stable] Merge pull request #509 from ArthurHoaro/v0.6.5
148```
149
150Shaarli >= `v0.8.x`: install/update third-party PHP dependencies using [Composer](https://getcomposer.org/):
151
152```bash
153$ composer install --no-dev
154
155Loading composer repositories with package information
156Updating dependencies
157 - Installing shaarli/netscape-bookmark-parser (v1.0.1)
158 Downloading: 100%
159```
160
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
169Shaarli >= `v0.10.0` manages its front-end dependencies with nodejs. You need to install [yarn](https://yarnpkg.com/lang/en/docs/install/):
170
171```bash
172$ make build_frontend
173```
174
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
195### Step 3: configuration
196
197After migrating, access your fresh Shaarli installation from a web browser; the
198configuration will then be automatically updated, and new settings added to
199`data/config.json.php` (see [Shaarli configuration](Shaarli-configuration.md) for more
200details).
201
202## Troubleshooting
203
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.
205