Projekt

Allgemein

Profil

ERPNext14 » Historie » Version 16

Jeremias Keihsler, 16.02.2023 16:34

1 1 Jeremias Keihsler
h1. ERPNext 14
2
3
h2. Bitnami based on Debian 11
4
5
out of the box ERPNext is installed. This describes what else can/needs to be done:
6
7
h3. convert VirtualBox-ova to be used with KVM
8
9
untar @.ova@
10
11
<pre><code class="shell">
12
tar xvf bitnami-erpnext-14.11.0-0-linux-vm-debian-11-x86_64-nami.ova
13
</code></pre>
14
15
convert @.vmdk@ to @.qcow2@ while showing 'progress'
16
17
<pre><code class="shell">
18
qemu-img convert -p -f vmdk -O qcow2 \
19
  bitnami-erpnext-14.11.0-0-linux-vm-debian-11-x86_64-nami-disk1.vmdk \
20
  bitnami-erpnext-14.11.0-0-linux-vm-debian-11-x86_64-nami-disk1.qcow2
21
</code></pre>
22
23
this is a sample virsh dumpxml with a bridged interface
24
25
<pre><code class="xml">
26
<domain type="kvm" id="7">
27 2 Jeremias Keihsler
  <name>bitnami_erpnext</name>
28
  <uuid>acf57964-b3d8-4148-9391-b4552a72a32c</uuid>
29
  <metadata>
30
    <libosinfo:libosinfo>
31
    <libosinfo:os id="http://debian.org/debian/11"/>
32
    </libosinfo:libosinfo>
33
  </metadata>
34
  <memory unit="KiB">4194304</memory>
35
  <currentMemory unit="KiB">4194304</currentMemory>
36
  <vcpu placement="static">2</vcpu>
37
  <resource>
38
    <partition>/machine</partition>
39
  </resource>
40
  <os>
41
    <type arch="x86_64" machine="pc-i440fx-rhel7.0.0">hvm</type>
42
    <boot dev="hd"/>
43
    <bootmenu enable="yes"/>
44
  </os>
45
  <features>
46
    <acpi/>
47
    <apic/>
48
  </features>
49
  <cpu mode="host-passthrough" check="none">
50
    <topology sockets="1" cores="1" threads="2"/>
51
  </cpu>
52
  <clock offset="utc">
53
    <timer name="rtc" tickpolicy="catchup"/>
54
    <timer name="pit" tickpolicy="delay"/>
55
    <timer name="hpet" present="no"/>
56
  </clock>
57
  <on_poweroff>destroy</on_poweroff>
58
  <on_reboot>restart</on_reboot>
59
  <on_crash>destroy</on_crash>
60
  <pm>
61
    <suspend-to-mem enabled="no"/>
62
    <suspend-to-disk enabled="no"/>
63
  </pm>
64
  <devices>
65
    <emulator>/usr/libexec/qemu-kvm</emulator>
66
    <disk type="file" device="disk">
67
      <driver name="qemu" type="qcow2"/>
68
      <source file="/../libvirt/images/bitnami-erpnext-14.11.0-0-linux-vm-debian-11-x86_64-nami-disk1.qcow2"/>
69
      <backingStore/>
70
      <target dev="vdb" bus="virtio"/>
71
      <alias name="virtio-disk1"/>
72
      <address type="pci" domain="0x0000" bus="0x00" slot="0x0b" function="0x0"/>
73
    </disk>
74
    <controller type="usb" index="0" model="ich9-ehci1">
75
      <alias name="usb"/>
76
      <address type="pci" domain="0x0000" bus="0x00" slot="0x05" function="0x7"/>
77
    </controller>
78
    <controller type="usb" index="0" model="ich9-uhci1">
79
      <alias name="usb"/>
80
      <master startport="0"/>
81
      <address type="pci" domain="0x0000" bus="0x00" slot="0x05" function="0x0" multifunction="on"/>
82
    </controller>
83
    <controller type="usb" index="0" model="ich9-uhci2">
84
      <alias name="usb"/>
85
      <master startport="2"/>
86
      <address type="pci" domain="0x0000" bus="0x00" slot="0x05" function="0x1"/>
87
    </controller>
88
    <controller type="usb" index="0" model="ich9-uhci3">
89
      <alias name="usb"/>
90
      <master startport="4"/>
91
      <address type="pci" domain="0x0000" bus="0x00" slot="0x05" function="0x2"/>
92
    </controller>
93
    <controller type="pci" index="0" model="pci-root">
94
      <alias name="pci.0"/>
95
    </controller>
96
    <controller type="virtio-serial" index="0">
97
      <alias name="virtio-serial0"/>
98
      <address type="pci" domain="0x0000" bus="0x00" slot="0x06" function="0x0"/>
99
    </controller>
100
    <controller type="scsi" index="0" model="virtio-scsi">
101
      <alias name="scsi0"/>
102
      <address type="pci" domain="0x0000" bus="0x00" slot="0x0a" function="0x0"/>
103
    </controller>
104
    <interface type="bridge">
105
      <mac address="52:54:00:29:00:87"/>
106
      <source bridge="br0"/>
107
      <target dev="vnet1"/>
108
      <model type="virtio"/>
109
      <alias name="net0"/>
110
      <address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x0"/>
111
    </interface>
112
    <serial type="pty">
113
      <source path="/dev/pts/9"/>
114
      <target type="isa-serial" port="0">
115
        <model name="isa-serial"/>
116
      </target>
117
      <alias name="serial0"/>
118
    </serial>
119
    <console type="pty" tty="/dev/pts/9">
120
      <source path="/dev/pts/9"/>
121
      <target type="serial" port="0"/>
122
      <alias name="serial0"/>
123
    </console>
124
    <channel type="unix">
125
      <source mode="bind" path="/var/lib/libvirt/qemu/channel/target/domain-7-bitnami_erpnext/org.qemu.guest_agent.0"/>
126
      <target type="virtio" name="org.qemu.guest_agent.0" state="disconnected"/>
127
      <alias name="channel0"/>
128
      <address type="virtio-serial" controller="0" bus="0" port="1"/>
129
    </channel>
130
    <channel type="spicevmc">
131
      <target type="virtio" name="com.redhat.spice.0" state="disconnected"/>
132
      <alias name="channel1"/>
133
      <address type="virtio-serial" controller="0" bus="0" port="2"/>
134
    </channel>
135
    <input type="tablet" bus="usb">
136
      <alias name="input0"/>
137
      <address type="usb" bus="0" port="1"/>
138
    </input>
139
    <input type="mouse" bus="ps2">
140
      <alias name="input1"/>
141
    </input>
142
    <input type="keyboard" bus="ps2">
143
      <alias name="input2"/>
144
    </input>
145
    <graphics type="spice" port="5901" autoport="yes" listen="127.0.0.1">
146
      <listen type="address" address="127.0.0.1"/>
147
    </graphics>
148
    <sound model="ich6">
149
      <alias name="sound0"/>
150
      <address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x0"/>
151
    </sound>
152
    <video>
153
      <model type="qxl" ram="65536" vram="65536" vgamem="16384" heads="1" primary="yes"/>
154
      <alias name="video0"/>
155
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x0"/>
156
    </video>
157
    <redirdev bus="usb" type="spicevmc">
158
      <alias name="redir0"/>
159
      <address type="usb" bus="0" port="2"/>
160
    </redirdev>
161
    <redirdev bus="usb" type="spicevmc">
162
      <alias name="redir1"/>
163
      <address type="usb" bus="0" port="3"/>
164
    </redirdev>
165
    <memballoon model="virtio">
166
      <alias name="balloon0"/>
167
      <address type="pci" domain="0x0000" bus="0x00" slot="0x08" function="0x0"/>
168
    </memballoon>
169
    <rng model="virtio">
170
      <backend model="random">/dev/urandom</backend>
171
      <alias name="rng0"/>
172
      <address type="pci" domain="0x0000" bus="0x00" slot="0x09" function="0x0"/>
173
    </rng>
174
  </devices>
175
  <seclabel type="dynamic" model="selinux" relabel="yes">
176
    <label>system_u:system_r:svirt_t:s0:c328,c377</label>
177
    <imagelabel>system_u:object_r:svirt_image_t:s0:c328,c377</imagelabel>
178
  </seclabel>
179
  <seclabel type="dynamic" model="dac" relabel="yes">
180
    <label>+107:+107</label>
181
    <imagelabel>+107:+107</imagelabel>
182
  </seclabel>
183 1 Jeremias Keihsler
</domain>
184
</code></pre>
185
186 12 Jeremias Keihsler
h3. set static IP address
187
188
taken from https://docs.bitnami.com/virtual-machine/faq/configuration/configure-static-address/
189
190
check link and current IPs
191
192
<pre><code class="shell">
193
sudo ifconfig
194
</code></pre>
195
196
<pre><code class="shell">
197
cd /etc/systemd/network
198
sudo touch 25-wired.network
199
</code></pre>
200
201
add following lines
202
203
<pre>
204
[Match]
205
Name=enp0s3
206
207
[Network]
208
Address=HOST-IP-ADDRESS
209
Gateway=GATEWAY-IP-ADDRESS
210
</pre>
211
212
restart service
213
214
<pre><code class="shell">
215
sudo systemctl restart systemd-networkd.service
216
</code></pre>
217
218 2 Jeremias Keihsler
h3. activate SSH-Server
219 1 Jeremias Keihsler
220 2 Jeremias Keihsler
taken from https://docs.bitnami.com/virtual-machine/faq/get-started/enable-ssh/
221 1 Jeremias Keihsler
222 2 Jeremias Keihsler
<pre><code class="shell">
223
sudo rm -f /etc/ssh/sshd_not_to_be_run
224
sudo systemctl enable ssh
225
sudo systemctl start ssh
226
</code></pre>
227 1 Jeremias Keihsler
228 3 Jeremias Keihsler
h3. ... password-based SSH auth (are you serious?)
229
230
maybe ok for testing .. 
231
taken from https://docs.bitnami.com/virtual-machine/faq/get-started/enable-ssh-password/
232
233
edit @/etc/ssh/sshd_config@ and add/modify the following line
234
235
<pre><code class="shell">
236
  PasswordAuthentication yes
237
</code></pre>
238
239
restart SSH server
240
241
<pre><code class="shell">
242
  sudo /etc/init.d/ssh force-reload
243
  sudo /etc/init.d/ssh restart
244
</code></pre>
245
246 4 Jeremias Keihsler
h3. modify keyboard layout
247
248
taken from https://docs.bitnami.com/virtual-machine/faq/configuration/configure-keyboard/
249
250
<pre><code class="shell">
251
  sudo apt-get install keyboard-configuration console-setup
252
  sudo dpkg-reconfigure keyboard-configuration
253
  sudo systemctl restart keyboard-setup
254
</code></pre>
255
256 5 Jeremias Keihsler
h3. alias ll
257
258 6 Jeremias Keihsler
for everyone .. taken from https://www.server-world.info/en/note?os=Debian_11&p=initial_conf&f=2
259
260 5 Jeremias Keihsler
<pre><code class="shell">
261
sudo vim /etc/profile.d/command_alias.sh
262
</code></pre>
263
264
<pre>
265
# create new file
266
# add alias you'd like to set
267
alias ll='ls $LS_OPTIONS -l'
268
# alias l='ls $LS_OPTIONS -lA'
269
# alias rm='rm -i'
270
# alias cp='cp -i'
271
# alias mv='mv -i'
272
</pre>
273
274
<pre><code class="shell">
275
source /etc/profile.d/command_alias.sh
276
</code></pre>
277
278 13 Jeremias Keihsler
h3. Install the Wkhtmltopdf extension
279
280
taken from https://docs.bitnami.com/aws/apps/erpnext/configuration/install-wkhtmltopdf/
281
282
<pre><code class="shell">
283
find /opt/bitnami/common/bin -name fc-* | sudo xargs -I {} mv {} {}.bak
284
sudo apt-get install zlib1g fontconfig libxrender1 libfreetype6 libxext6 libx11-6
285 14 Jeremias Keihsler
</code></pre>
286
287
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.
288
289
https://github.com/wkhtmltopdf/wkhtmltopdf/releases/
290
291 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
292
293 14 Jeremias Keihsler
<pre><code class="shell">
294 13 Jeremias Keihsler
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/X.Y.Z/wkhtmltox_X.Y.Z.PLATFORM.deb
295
sudo apt install -f ./wkhtmltox_X.Y.Z.PLATFORM.deb
296
sudo /opt/bitnami/ctlscript.sh restart
297
</code></pre>
298
299
h4. Troubleshooting
300
301
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:
302
303
<pre><code class="shell">
304
sudo dpkg --remove --force-depends xfonts-75dpi
305
sudo dpkg --remove --force-depends xfonts-100dpi
306
</code></pre>
307
308 16 Jeremias Keihsler
h3. install weasyprint
309
310
taken from https://packages.debian.org/bullseye/weasyprint
311
312
<pre><code class="shell">
313
sudo apt install weasyprint
314
</code></pre>
315
316
317 7 Jeremias Keihsler
h3. migrate ERPNext to new server
318 1 Jeremias Keihsler
319 7 Jeremias Keihsler
h4. backup
320
321 5 Jeremias Keihsler
<pre><code class="shell">
322
cd /opt/bitnami/erpnext/frappe-bench
323 1 Jeremias Keihsler
bench backup-all-sites
324 7 Jeremias Keihsler
</code></pre>
325
326
files are saved very deep
327
328
<pre><code class="shell">
329
cd /opt/bitnami/erpnext/frappe-bench/sites/erpnext/private/backups/
330
</code></pre>
331
332
h4. restore
333
334
copy files to new server into @/home/bitnami@
335
336
<pre><code class="shell">
337
gunzip yyyymmdd_hhmmss-erpnext-database.sql.gz
338
</code></pre>
339
340 1 Jeremias Keihsler
connect to MariaDB (password is the same as application-password)
341 8 Jeremias Keihsler
taken from https://docs.bitnami.com/general/apps/erpnext/get-started/connect-mariadb/
342 7 Jeremias Keihsler
343
<pre><code class="shell">
344
mysql -u root -p
345
</code></pre>
346
347 1 Jeremias Keihsler
<pre><code class="sql">
348
DROP DATABASE bitnami_erpnext;
349 8 Jeremias Keihsler
\q
350
</code></pre>
351
352 9 Jeremias Keihsler
*as of 2023-02-07 restore seems not to work following the instructions*
353
354 8 Jeremias Keihsler
<pre><code class="shell">
355
cd /opt/bitnami/erpnext/frappe-bench/
356 5 Jeremias Keihsler
bench restore /home/bitnami
357
</code></pre>
358 1 Jeremias Keihsler
359
h2. vanilla install based on Ubuntu
360 10 Jeremias Keihsler
361 11 Jeremias Keihsler
h3. backup and load into test-site
362 10 Jeremias Keihsler
363
To create a staging site from a production site backup:
364
365
<pre><code class="shell">
366
cd <frappe/erpnext Verzeichnis>
367
mkdir ~/backup/
368
369
bench --site prod.example.net set-maintenance-mode on
370
bench --site prod.example.net set-config pause_scheduler 1
371
bench --site prod.example.net backup --with-files --compress --backup-path ~/backup/ 
372
# notice: Database Public & Private from stdout
373
bench --site prod.example.net set-maintenance-mode off
374
375
restore into other Staging instance:
376
377
bench new-site staging.example.net
378
bench --site staging.example.net set-maintenance-mode on
379
380
bench --site staging.example.net restore ~/backup/YYYYMMDD_HHMMSS-prod.example.net-database.sql.gz
381
  --with-public-files  ~/backup/YYYYMMDD_HHMMSS-prod.example.net-files.tar.gz
382
  --with-private-files ~/backup/YYYYMMDD_HHMMSS-prod.example.net-private-files.tar.gz
383
  MySQL root password:
384
385
bench --site staging.example.net mute_emails true
386
bench --site staging.example.net set-maintenance-mode off
387
rm -r ~/backup/
388
</code></pre>