ERPNext14 » Historie » Version 49
Jeremias Keihsler, 16.10.2023 10:54
1 | 1 | Jeremias Keihsler | h1. ERPNext 14 |
---|---|---|---|
2 | |||
3 | 41 | Jeremias Keihsler | long term goal is to run ERPNext in a podman-pod. Maybe this can be a first stepping stone: |
4 | https://piotrkrzyzek.com/how-to-setup-self-host-erpnext-in-docker-without-treafik-nginx-only/ |
||
5 | until then we use Bitnami VMs. |
||
6 | |||
7 | 1 | Jeremias Keihsler | h2. Bitnami based on Debian 11 |
8 | |||
9 | out of the box ERPNext is installed. This describes what else can/needs to be done: |
||
10 | |||
11 | h3. convert VirtualBox-ova to be used with KVM |
||
12 | |||
13 | untar @.ova@ |
||
14 | |||
15 | <pre><code class="shell"> |
||
16 | tar xvf bitnami-erpnext-14.11.0-0-linux-vm-debian-11-x86_64-nami.ova |
||
17 | </code></pre> |
||
18 | |||
19 | convert @.vmdk@ to @.qcow2@ while showing 'progress' |
||
20 | |||
21 | <pre><code class="shell"> |
||
22 | qemu-img convert -p -f vmdk -O qcow2 \ |
||
23 | bitnami-erpnext-14.11.0-0-linux-vm-debian-11-x86_64-nami-disk1.vmdk \ |
||
24 | bitnami-erpnext-14.11.0-0-linux-vm-debian-11-x86_64-nami-disk1.qcow2 |
||
25 | </code></pre> |
||
26 | |||
27 | this is a sample virsh dumpxml with a bridged interface |
||
28 | |||
29 | <pre><code class="xml"> |
||
30 | <domain type="kvm" id="7"> |
||
31 | 2 | Jeremias Keihsler | <name>bitnami_erpnext</name> |
32 | <uuid>acf57964-b3d8-4148-9391-b4552a72a32c</uuid> |
||
33 | <metadata> |
||
34 | <libosinfo:libosinfo> |
||
35 | <libosinfo:os id="http://debian.org/debian/11"/> |
||
36 | </libosinfo:libosinfo> |
||
37 | </metadata> |
||
38 | <memory unit="KiB">4194304</memory> |
||
39 | <currentMemory unit="KiB">4194304</currentMemory> |
||
40 | <vcpu placement="static">2</vcpu> |
||
41 | <resource> |
||
42 | <partition>/machine</partition> |
||
43 | </resource> |
||
44 | <os> |
||
45 | <type arch="x86_64" machine="pc-i440fx-rhel7.0.0">hvm</type> |
||
46 | <boot dev="hd"/> |
||
47 | <bootmenu enable="yes"/> |
||
48 | </os> |
||
49 | <features> |
||
50 | <acpi/> |
||
51 | <apic/> |
||
52 | </features> |
||
53 | <cpu mode="host-passthrough" check="none"> |
||
54 | <topology sockets="1" cores="1" threads="2"/> |
||
55 | </cpu> |
||
56 | <clock offset="utc"> |
||
57 | <timer name="rtc" tickpolicy="catchup"/> |
||
58 | <timer name="pit" tickpolicy="delay"/> |
||
59 | <timer name="hpet" present="no"/> |
||
60 | </clock> |
||
61 | <on_poweroff>destroy</on_poweroff> |
||
62 | <on_reboot>restart</on_reboot> |
||
63 | <on_crash>destroy</on_crash> |
||
64 | <pm> |
||
65 | <suspend-to-mem enabled="no"/> |
||
66 | <suspend-to-disk enabled="no"/> |
||
67 | </pm> |
||
68 | <devices> |
||
69 | <emulator>/usr/libexec/qemu-kvm</emulator> |
||
70 | <disk type="file" device="disk"> |
||
71 | <driver name="qemu" type="qcow2"/> |
||
72 | <source file="/../libvirt/images/bitnami-erpnext-14.11.0-0-linux-vm-debian-11-x86_64-nami-disk1.qcow2"/> |
||
73 | <backingStore/> |
||
74 | <target dev="vdb" bus="virtio"/> |
||
75 | <alias name="virtio-disk1"/> |
||
76 | <address type="pci" domain="0x0000" bus="0x00" slot="0x0b" function="0x0"/> |
||
77 | </disk> |
||
78 | <controller type="usb" index="0" model="ich9-ehci1"> |
||
79 | <alias name="usb"/> |
||
80 | <address type="pci" domain="0x0000" bus="0x00" slot="0x05" function="0x7"/> |
||
81 | </controller> |
||
82 | <controller type="usb" index="0" model="ich9-uhci1"> |
||
83 | <alias name="usb"/> |
||
84 | <master startport="0"/> |
||
85 | <address type="pci" domain="0x0000" bus="0x00" slot="0x05" function="0x0" multifunction="on"/> |
||
86 | </controller> |
||
87 | <controller type="usb" index="0" model="ich9-uhci2"> |
||
88 | <alias name="usb"/> |
||
89 | <master startport="2"/> |
||
90 | <address type="pci" domain="0x0000" bus="0x00" slot="0x05" function="0x1"/> |
||
91 | </controller> |
||
92 | <controller type="usb" index="0" model="ich9-uhci3"> |
||
93 | <alias name="usb"/> |
||
94 | <master startport="4"/> |
||
95 | <address type="pci" domain="0x0000" bus="0x00" slot="0x05" function="0x2"/> |
||
96 | </controller> |
||
97 | <controller type="pci" index="0" model="pci-root"> |
||
98 | <alias name="pci.0"/> |
||
99 | </controller> |
||
100 | <controller type="virtio-serial" index="0"> |
||
101 | <alias name="virtio-serial0"/> |
||
102 | <address type="pci" domain="0x0000" bus="0x00" slot="0x06" function="0x0"/> |
||
103 | </controller> |
||
104 | <controller type="scsi" index="0" model="virtio-scsi"> |
||
105 | <alias name="scsi0"/> |
||
106 | <address type="pci" domain="0x0000" bus="0x00" slot="0x0a" function="0x0"/> |
||
107 | </controller> |
||
108 | <interface type="bridge"> |
||
109 | <mac address="52:54:00:29:00:87"/> |
||
110 | <source bridge="br0"/> |
||
111 | <target dev="vnet1"/> |
||
112 | <model type="virtio"/> |
||
113 | <alias name="net0"/> |
||
114 | <address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x0"/> |
||
115 | </interface> |
||
116 | <serial type="pty"> |
||
117 | <source path="/dev/pts/9"/> |
||
118 | <target type="isa-serial" port="0"> |
||
119 | <model name="isa-serial"/> |
||
120 | </target> |
||
121 | <alias name="serial0"/> |
||
122 | </serial> |
||
123 | <console type="pty" tty="/dev/pts/9"> |
||
124 | <source path="/dev/pts/9"/> |
||
125 | <target type="serial" port="0"/> |
||
126 | <alias name="serial0"/> |
||
127 | </console> |
||
128 | <channel type="unix"> |
||
129 | <source mode="bind" path="/var/lib/libvirt/qemu/channel/target/domain-7-bitnami_erpnext/org.qemu.guest_agent.0"/> |
||
130 | <target type="virtio" name="org.qemu.guest_agent.0" state="disconnected"/> |
||
131 | <alias name="channel0"/> |
||
132 | <address type="virtio-serial" controller="0" bus="0" port="1"/> |
||
133 | </channel> |
||
134 | <channel type="spicevmc"> |
||
135 | <target type="virtio" name="com.redhat.spice.0" state="disconnected"/> |
||
136 | <alias name="channel1"/> |
||
137 | <address type="virtio-serial" controller="0" bus="0" port="2"/> |
||
138 | </channel> |
||
139 | <input type="tablet" bus="usb"> |
||
140 | <alias name="input0"/> |
||
141 | <address type="usb" bus="0" port="1"/> |
||
142 | </input> |
||
143 | <input type="mouse" bus="ps2"> |
||
144 | <alias name="input1"/> |
||
145 | </input> |
||
146 | <input type="keyboard" bus="ps2"> |
||
147 | <alias name="input2"/> |
||
148 | </input> |
||
149 | <graphics type="spice" port="5901" autoport="yes" listen="127.0.0.1"> |
||
150 | <listen type="address" address="127.0.0.1"/> |
||
151 | </graphics> |
||
152 | <sound model="ich6"> |
||
153 | <alias name="sound0"/> |
||
154 | <address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x0"/> |
||
155 | </sound> |
||
156 | <video> |
||
157 | <model type="qxl" ram="65536" vram="65536" vgamem="16384" heads="1" primary="yes"/> |
||
158 | <alias name="video0"/> |
||
159 | <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x0"/> |
||
160 | </video> |
||
161 | <redirdev bus="usb" type="spicevmc"> |
||
162 | <alias name="redir0"/> |
||
163 | <address type="usb" bus="0" port="2"/> |
||
164 | </redirdev> |
||
165 | <redirdev bus="usb" type="spicevmc"> |
||
166 | <alias name="redir1"/> |
||
167 | <address type="usb" bus="0" port="3"/> |
||
168 | </redirdev> |
||
169 | <memballoon model="virtio"> |
||
170 | <alias name="balloon0"/> |
||
171 | <address type="pci" domain="0x0000" bus="0x00" slot="0x08" function="0x0"/> |
||
172 | </memballoon> |
||
173 | <rng model="virtio"> |
||
174 | <backend model="random">/dev/urandom</backend> |
||
175 | <alias name="rng0"/> |
||
176 | <address type="pci" domain="0x0000" bus="0x00" slot="0x09" function="0x0"/> |
||
177 | </rng> |
||
178 | </devices> |
||
179 | <seclabel type="dynamic" model="selinux" relabel="yes"> |
||
180 | <label>system_u:system_r:svirt_t:s0:c328,c377</label> |
||
181 | <imagelabel>system_u:object_r:svirt_image_t:s0:c328,c377</imagelabel> |
||
182 | </seclabel> |
||
183 | <seclabel type="dynamic" model="dac" relabel="yes"> |
||
184 | <label>+107:+107</label> |
||
185 | <imagelabel>+107:+107</imagelabel> |
||
186 | </seclabel> |
||
187 | 1 | Jeremias Keihsler | </domain> |
188 | </code></pre> |
||
189 | |||
190 | 48 | Jeremias Keihsler | h3. modify keyboard layout |
191 | |||
192 | taken from https://docs.bitnami.com/virtual-machine/faq/configuration/configure-keyboard/ |
||
193 | |||
194 | <pre><code class="shell"> |
||
195 | sudo apt install keyboard-configuration console-setup |
||
196 | </code></pre> |
||
197 | |||
198 | 12 | Jeremias Keihsler | h3. set static IP address |
199 | |||
200 | taken from https://docs.bitnami.com/virtual-machine/faq/configuration/configure-static-address/ |
||
201 | |||
202 | check link and current IPs |
||
203 | |||
204 | <pre><code class="shell"> |
||
205 | sudo ifconfig |
||
206 | </code></pre> |
||
207 | |||
208 | <pre><code class="shell"> |
||
209 | cd /etc/systemd/network |
||
210 | sudo touch 25-wired.network |
||
211 | </code></pre> |
||
212 | |||
213 | add following lines |
||
214 | |||
215 | <pre> |
||
216 | [Match] |
||
217 | 30 | Jeremias Keihsler | Name=ens3 |
218 | 12 | Jeremias Keihsler | |
219 | [Network] |
||
220 | Address=HOST-IP-ADDRESS |
||
221 | Gateway=GATEWAY-IP-ADDRESS |
||
222 | </pre> |
||
223 | |||
224 | restart service |
||
225 | |||
226 | <pre><code class="shell"> |
||
227 | 1 | Jeremias Keihsler | sudo systemctl restart systemd-networkd.service |
228 | 30 | Jeremias Keihsler | sudo systemctl enable systemd-networkd |
229 | 12 | Jeremias Keihsler | </code></pre> |
230 | |||
231 | 2 | Jeremias Keihsler | h3. activate SSH-Server |
232 | 1 | Jeremias Keihsler | |
233 | 2 | Jeremias Keihsler | taken from https://docs.bitnami.com/virtual-machine/faq/get-started/enable-ssh/ |
234 | 1 | Jeremias Keihsler | |
235 | 2 | Jeremias Keihsler | <pre><code class="shell"> |
236 | sudo rm -f /etc/ssh/sshd_not_to_be_run |
||
237 | sudo systemctl enable ssh |
||
238 | sudo systemctl start ssh |
||
239 | </code></pre> |
||
240 | 1 | Jeremias Keihsler | |
241 | 3 | Jeremias Keihsler | h3. ... password-based SSH auth (are you serious?) |
242 | |||
243 | maybe ok for testing .. |
||
244 | taken from https://docs.bitnami.com/virtual-machine/faq/get-started/enable-ssh-password/ |
||
245 | |||
246 | edit @/etc/ssh/sshd_config@ and add/modify the following line |
||
247 | |||
248 | <pre><code class="shell"> |
||
249 | PasswordAuthentication yes |
||
250 | </code></pre> |
||
251 | |||
252 | restart SSH server |
||
253 | |||
254 | <pre><code class="shell"> |
||
255 | 35 | Jeremias Keihsler | sudo systemctl restart ssh |
256 | 28 | Jeremias Keihsler | </code></pre> |
257 | |||
258 | 4 | Jeremias Keihsler | h3. ... and of course cert-based .. |
259 | |||
260 | from the remote machine just |
||
261 | |||
262 | <pre><code class="shell"> |
||
263 | 36 | Jeremias Keihsler | ssh-copy-id bitnami@example.com |
264 | 31 | Jeremias Keihsler | </code></pre> |
265 | |||
266 | 5 | Jeremias Keihsler | h3. alias ll |
267 | |||
268 | 6 | Jeremias Keihsler | for everyone .. taken from https://www.server-world.info/en/note?os=Debian_11&p=initial_conf&f=2 |
269 | |||
270 | 5 | Jeremias Keihsler | <pre><code class="shell"> |
271 | sudo vim /etc/profile.d/command_alias.sh |
||
272 | </code></pre> |
||
273 | |||
274 | <pre> |
||
275 | # create new file |
||
276 | # add alias you'd like to set |
||
277 | alias ll='ls $LS_OPTIONS -l' |
||
278 | # alias l='ls $LS_OPTIONS -lA' |
||
279 | # alias rm='rm -i' |
||
280 | # alias cp='cp -i' |
||
281 | # alias mv='mv -i' |
||
282 | </pre> |
||
283 | |||
284 | <pre><code class="shell"> |
||
285 | source /etc/profile.d/command_alias.sh |
||
286 | </code></pre> |
||
287 | |||
288 | 13 | Jeremias Keihsler | h3. Install the Wkhtmltopdf extension |
289 | |||
290 | taken from https://docs.bitnami.com/aws/apps/erpnext/configuration/install-wkhtmltopdf/ |
||
291 | |||
292 | 42 | Jeremias Keihsler | alternatively it should be possible to install via something like @bench install wkhtmltopdf@ |
293 | |||
294 | 13 | Jeremias Keihsler | <pre><code class="shell"> |
295 | find /opt/bitnami/common/bin -name fc-* | sudo xargs -I {} mv {} {}.bak |
||
296 | 22 | Jeremias Keihsler | sudo apt install zlib1g fontconfig libxrender1 libfreetype6 libxext6 libx11-6 |
297 | 14 | Jeremias Keihsler | </code></pre> |
298 | |||
299 | Download the latest version of the package from the Wkhtmltopdf project releases page and install it. Replace the X.Y.Z and PLATFORM placeholders with the correct version and platform strings from the release filename. |
||
300 | |||
301 | https://github.com/wkhtmltopdf/wkhtmltopdf/releases/ |
||
302 | |||
303 | 15 | Jeremias Keihsler | as of 2023-02-16 https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.buster_amd64.deb |
304 | |||
305 | 14 | Jeremias Keihsler | <pre><code class="shell"> |
306 | 13 | Jeremias Keihsler | wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/X.Y.Z/wkhtmltox_X.Y.Z.PLATFORM.deb |
307 | sudo apt install -f ./wkhtmltox_X.Y.Z.PLATFORM.deb |
||
308 | sudo /opt/bitnami/ctlscript.sh restart |
||
309 | </code></pre> |
||
310 | |||
311 | 21 | Jeremias Keihsler | h4. install alternative way? |
312 | |||
313 | without QT but with virtual X11-Server |
||
314 | |||
315 | https://packages.debian.org/bullseye/xvfb |
||
316 | https://installati.one/debian/11/wkhtmltopdf/ |
||
317 | https://packages.debian.org/stable/wkhtmltopdf |
||
318 | |||
319 | needs some testing |
||
320 | |||
321 | 23 | Jeremias Keihsler | h4. Troubleshooting PDF formating issues |
322 | 18 | Jeremias Keihsler | |
323 | taken from https://discuss.frappe.io/t/pdf-alignment-problem/34425/7 |
||
324 | |||
325 | set the IP-adr. in @site_config.json@ |
||
326 | |||
327 | <pre><code class="shell"> |
||
328 | vim /opt/bitnami/erpnext/frappe-bench/sites/erpnext/site_config.json |
||
329 | </code></pre> |
||
330 | |||
331 | 24 | Jeremias Keihsler | replace @http:localhost@ with the @https://hostname-ip:443@ |
332 | 18 | Jeremias Keihsler | |
333 | <pre> |
||
334 | 24 | Jeremias Keihsler | "host_name": "https://192.168.41.131:443" |
335 | 18 | Jeremias Keihsler | </pre> |
336 | |||
337 | 20 | Jeremias Keihsler | h4. Troubleshooting (is just a reminder ... I stumbled across but didn't do it, as there were no related issues yet) |
338 | 13 | Jeremias Keihsler | |
339 | If you experience issues with display resolution on Linux platforms, they could be related to the xfonts-75dpi or xfonts-100dpi packages. Uninstall them by executing: |
||
340 | |||
341 | <pre><code class="shell"> |
||
342 | sudo dpkg --remove --force-depends xfonts-75dpi |
||
343 | sudo dpkg --remove --force-depends xfonts-100dpi |
||
344 | 18 | Jeremias Keihsler | </code></pre> |
345 | 13 | Jeremias Keihsler | |
346 | 16 | Jeremias Keihsler | h3. install weasyprint |
347 | |||
348 | taken from https://packages.debian.org/bullseye/weasyprint |
||
349 | |||
350 | <pre><code class="shell"> |
||
351 | sudo apt install weasyprint |
||
352 | </code></pre> |
||
353 | |||
354 | 29 | Jeremias Keihsler | h3. automatic backup of ERPNext |
355 | 25 | Jeremias Keihsler | |
356 | <pre><code class="shell"> |
||
357 | sudo vim /usr/local/bin/erpnext-backup.sh |
||
358 | </code></pre> |
||
359 | |||
360 | <pre><code class="shell"> |
||
361 | 26 | Jeremias Keihsler | #!/bin/bash -l |
362 | 1 | Jeremias Keihsler | |
363 | 26 | Jeremias Keihsler | # there is some 'magic' in the shebang, the '-l' is invoking the environment of the calling user (in this case 'bitnami') |
364 | 1 | Jeremias Keihsler | # JKE 2023-08-24 |
365 | 25 | Jeremias Keihsler | cd /opt/bitnami/erpnext/frappe-bench |
366 | 33 | Jeremias Keihsler | # JKE 2023-10-13 backup sites individually and with files |
367 | # bench backup-all-sites |
||
368 | 34 | Jeremias Keihsler | # bench --site erpnext backup --with-files |
369 | 39 | Jeremias Keihsler | # bench --site erpnext set-maintenance-mode on |
370 | 34 | Jeremias Keihsler | bench --site all backup --with-files |
371 | 39 | Jeremias Keihsler | # bench --site erpnext set-maintenance-mode off |
372 | 38 | Jeremias Keihsler | # bench --site all backup --with-files --compress --backup-path /var/cache/myerpnext.bak/ |
373 | 33 | Jeremias Keihsler | # /JKE 2023-10-13 |
374 | 25 | Jeremias Keihsler | </code></pre> |
375 | |||
376 | <pre><code class="shell"> |
||
377 | sudo chmod +x /usr/local/bin/erpnext-backup.sh |
||
378 | 1 | Jeremias Keihsler | </code></pre> |
379 | |||
380 | 26 | Jeremias Keihsler | <pre><code class="shell"> |
381 | sudo vim /etc/cron.d/erpnext-backup |
||
382 | </code></pre> |
||
383 | 1 | Jeremias Keihsler | |
384 | 26 | Jeremias Keihsler | <pre><code class="shell"> |
385 | # JKE 2023-08-24 |
||
386 | # |
||
387 | # min hr dom month dow user command |
||
388 | # - - - - - |
||
389 | # | | | | | |
||
390 | # | | | | +-day of week (0-7) sunday=0 or 7 |
||
391 | # | | | +---------month (1-12) |
||
392 | # | | +----------------day of month (1-31) |
||
393 | # | +-----------------------hour (0-23) |
||
394 | # +------------------------------min (0-59) |
||
395 | # |
||
396 | # 32 13 * * * bitnami /usr/local/bin/erpnext-backup.sh >> /home/bitnami/erpnext-backup.log 2>&1 |
||
397 | 15 18 * * * bitnami /usr/local/bin/erpnext-backup.sh |
||
398 | </code></pre> |
||
399 | |||
400 | here is again some 'magic', there is no MTA available. So any output from the cron-job gets discarded. |
||
401 | use the upper construct to debug and append the output to @/home/bitnami/erpnext-backup.log@ |
||
402 | 25 | Jeremias Keihsler | |
403 | 1 | Jeremias Keihsler | the backups are stored in @/opt/bitnami/erpnext/frappe-bench/sites/erpnext/private/backups@ |
404 | 29 | Jeremias Keihsler | |
405 | h4. retrieve backups from external machine |
||
406 | |||
407 | rsync is not installed by default .. |
||
408 | |||
409 | <pre><code class="shell"> |
||
410 | sudo apt-get install rsync |
||
411 | </code></pre> |
||
412 | |||
413 | from the external machine, just invoke like |
||
414 | |||
415 | <pre><code class="shell"> |
||
416 | rsync --verbose --progress --stats --recursive bitnami@example.com:/opt/bitnami/erpnext/frappe-bench/sites/erpnext/private/backups/* . |
||
417 | </code></pre> |
||
418 | 16 | Jeremias Keihsler | |
419 | 40 | Jeremias Keihsler | h3. check ERPNext version |
420 | |||
421 | <pre><code class="shell"> |
||
422 | cd /opt/bitnami/erpnext/frappe-bench |
||
423 | bench version |
||
424 | </code></pre> |
||
425 | |||
426 | 1 | Jeremias Keihsler | h3. migrate ERPNext to new server |
427 | 43 | Jeremias Keihsler | |
428 | h4. backup complete machine |
||
429 | |||
430 | come on, you know how to do that image.. |
||
431 | |||
432 | h4. check the current version |
||
433 | |||
434 | <pre><code class="shell"> |
||
435 | cd /opt/bitnami/erpnext/frappe-bench |
||
436 | bench version |
||
437 | bench --version |
||
438 | </code></pre> |
||
439 | |||
440 | h4. upgrade ERPNext |
||
441 | |||
442 | taken from: https://docs.bitnami.com/general/apps/erpnext/administration/upgrade/ |
||
443 | |||
444 | Executing the following commands as bitnami user or the user who installed the application: |
||
445 | this may also help: https://medium.com/@prasantpant141/update-your-frappe-to-specific-latest-version-a08689fcd296 |
||
446 | |||
447 | <pre><code class="shell"> |
||
448 | cd /opt/bitnami/erpnext/frappe-bench/apps/erpnext |
||
449 | . ../../../venv/bin/activate |
||
450 | bench update |
||
451 | deactivate |
||
452 | 49 | Jeremias Keihsler | bench migrate |
453 | 43 | Jeremias Keihsler | </code></pre> |
454 | |||
455 | maybe it is necessary to update @pip@ and/or @frappe-bench@ to make it happen: |
||
456 | |||
457 | <pre><code class="shell"> |
||
458 | cd /opt/bitnami/erpnext/frappe-bench |
||
459 | pip install --upgrade pip |
||
460 | pip3 install --upgrade frappe-bench |
||
461 | </code></pre> |
||
462 | |||
463 | h5. troubleshoot |
||
464 | |||
465 | the update from v14.16 upwards seem to miss 2 log-files. |
||
466 | <pre><code class="shell"> |
||
467 | cd /opt/bitnami/erpnext/frappe-bench/logs |
||
468 | sudo touch database.log |
||
469 | sudo chown daemon:daemon database.log |
||
470 | sudo chmod 666 database.log |
||
471 | cd /opt/bitnami/erpnext/frappe-bench/sites/erpnext/logs |
||
472 | sudo touch database.log |
||
473 | sudo chown daemon:daemon database.log |
||
474 | sudo chmod 666 database.log |
||
475 | </code></pre> |
||
476 | 1 | Jeremias Keihsler | |
477 | 7 | Jeremias Keihsler | h4. backup |
478 | |||
479 | 47 | Jeremias Keihsler | see also: https://medium.com/@anjanadhakal09/erpnext-frappe-backup-and-restore-in-new-site-4aa908dc3fb0 |
480 | |||
481 | 5 | Jeremias Keihsler | <pre><code class="shell"> |
482 | cd /opt/bitnami/erpnext/frappe-bench |
||
483 | 1 | Jeremias Keihsler | bench backup-all-sites |
484 | 7 | Jeremias Keihsler | </code></pre> |
485 | |||
486 | files are saved very deep |
||
487 | |||
488 | <pre><code class="shell"> |
||
489 | cd /opt/bitnami/erpnext/frappe-bench/sites/erpnext/private/backups/ |
||
490 | </code></pre> |
||
491 | |||
492 | h4. restore |
||
493 | |||
494 | 46 | Jeremias Keihsler | also have a look at: |
495 | * https://frappeframework.com/docs/user/en/bench/reference/restore |
||
496 | * https://serverok.in/erpnext-restore-backup |
||
497 | 45 | Jeremias Keihsler | |
498 | 7 | Jeremias Keihsler | copy files to new server into @/home/bitnami@ |
499 | |||
500 | <pre><code class="shell"> |
||
501 | gunzip yyyymmdd_hhmmss-erpnext-database.sql.gz |
||
502 | </code></pre> |
||
503 | |||
504 | 1 | Jeremias Keihsler | connect to MariaDB (password is the same as application-password) |
505 | 8 | Jeremias Keihsler | taken from https://docs.bitnami.com/general/apps/erpnext/get-started/connect-mariadb/ |
506 | 7 | Jeremias Keihsler | |
507 | <pre><code class="shell"> |
||
508 | mysql -u root -p |
||
509 | </code></pre> |
||
510 | |||
511 | 1 | Jeremias Keihsler | <pre><code class="sql"> |
512 | DROP DATABASE bitnami_erpnext; |
||
513 | 8 | Jeremias Keihsler | \q |
514 | </code></pre> |
||
515 | |||
516 | 9 | Jeremias Keihsler | *as of 2023-02-07 restore seems not to work following the instructions* |
517 | |||
518 | 8 | Jeremias Keihsler | <pre><code class="shell"> |
519 | cd /opt/bitnami/erpnext/frappe-bench/ |
||
520 | 5 | Jeremias Keihsler | bench restore /home/bitnami |
521 | </code></pre> |
||
522 | 1 | Jeremias Keihsler | |
523 | h2. vanilla install based on Ubuntu |
||
524 | 10 | Jeremias Keihsler | |
525 | 11 | Jeremias Keihsler | h3. backup and load into test-site |
526 | 10 | Jeremias Keihsler | |
527 | 44 | Jeremias Keihsler | also have a look at: https://www.it-management-kirchberger.at/manuals-tutorials/server-centos-7/erpnext/todo.html |
528 | |||
529 | 10 | Jeremias Keihsler | To create a staging site from a production site backup: |
530 | |||
531 | <pre><code class="shell"> |
||
532 | cd <frappe/erpnext Verzeichnis> |
||
533 | mkdir ~/backup/ |
||
534 | |||
535 | bench --site prod.example.net set-maintenance-mode on |
||
536 | bench --site prod.example.net set-config pause_scheduler 1 |
||
537 | bench --site prod.example.net backup --with-files --compress --backup-path ~/backup/ |
||
538 | # notice: Database Public & Private from stdout |
||
539 | bench --site prod.example.net set-maintenance-mode off |
||
540 | |||
541 | restore into other Staging instance: |
||
542 | |||
543 | bench new-site staging.example.net |
||
544 | bench --site staging.example.net set-maintenance-mode on |
||
545 | |||
546 | bench --site staging.example.net restore ~/backup/YYYYMMDD_HHMMSS-prod.example.net-database.sql.gz |
||
547 | --with-public-files ~/backup/YYYYMMDD_HHMMSS-prod.example.net-files.tar.gz |
||
548 | --with-private-files ~/backup/YYYYMMDD_HHMMSS-prod.example.net-private-files.tar.gz |
||
549 | MySQL root password: |
||
550 | |||
551 | bench --site staging.example.net mute_emails true |
||
552 | bench --site staging.example.net set-maintenance-mode off |
||
553 | rm -r ~/backup/ |
||
554 | </code></pre> |