Kako namestiti osTicket na FreeBSD 12
Uporaba drugega sistema? osTicket je odprtokodni sistem za izdajo vstopnic za podporo strankam. Izvorna koda osTicket je javno gostovana na Githubu. V tej vadnici
Apache OpenMeetings je odprtokodna aplikacija za spletne konference. Napisana je v Javi in podpira več strežnikov baz podatkov. Ponuja številne funkcije, kot so zvočne in video konference, skupna raba zaslona, raziskovalec datotek, sistem za moderiranje uporabnikov, zasebna sporočila in stiki, integriran koledar za načrte sestankov in še veliko več. Prav tako lahko posnamete konferenčno sejo. Zagotavlja SOAP/REST API in več vtičnikov za enostavno integracijo z Moodle, Jira, Joomla, Confluence in drugimi.
Za to vadnico bomo uporabili 192.168.1.1
kot javni naslov IP in meetings.example.com
kot ime domene, usmerjeno proti primerku Vultr. Prepričajte se, da ste zamenjali vse pojavitve vzorčnega naslova IP in imena domene z dejanskim.
Posodobite svoj osnovni sistem z uporabo priročnika Kako posodobiti CentOS 7 . Ko je vaš sistem posodobljen, nadaljujte z namestitvijo Jave.
OpenMeetings je napisan v Javi, zato za delovanje zahteva Java Runtime Environment (JRE). Prenesite najnovejši razpoložljivi paket Oracle SE JDK 8 RPM, ki vključuje JRE in JDK.
wget --header 'Cookie: oraclelicense=a' http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.rpm
Namestite preneseni paket.
sudo rpm -Uvh jdk-8u161-linux-x64.rpm
Če je Java uspešno nameščena, boste lahko preverili njeno različico.
java -version
Videli boste naslednji izhod.
[user@vultr ~]$ java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
Preden lahko nadaljujemo, bomo morali nastaviti spremenljivke okolja JAVA_HOME
in JRE_HOME
. Poiščite absolutno pot izvršljive datoteke JAVA v vašem sistemu.
readlink -f $(which java)
Videli boste podoben izhod.
[user@vultr ~]$ readlink -f $(which java)
/usr/java/jdk1.8.0_161/jre/bin/java
Zdaj nastavite spremenljivke okolja JAVA_HOME
in JRE_HOME
glede na pot imenika Java.
echo "export JAVA_HOME=/usr/java/jdk1.8.0_161" >> ~/.bash_profile
echo "export JRE_HOME=/usr/java/jdk1.8.0_161/jre" >> ~/.bash_profile
Izvedite bash_profile
datoteko.
source ~/.bash_profile
Zdaj lahko zaženete echo $JAVA_HOME
ukaz, da zagotovite, da je spremenljivka okolja nastavljena.
[user@vultr ~]$ echo $JAVA_HOME
/usr/java/jdk1.8.0_161
Namestite knjižnici ImageMagick in GhostScript.
sudo yum -y install epel-release
sudo yum -y install ImageMagick ghostscript
ImageMagick nudi podporo za nalaganje slik in njihovo uvoz na tablo. GhostScript vam omogoča nalaganje PDF-jev na tablo.
Preverite različico ImageMagick in GhostScript, da zagotovite, da sta uspešno nameščena.
[user@vultr ~]$ identify -version
Version: ImageMagick 6.7.8-9 2016-06-16 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC
Features: OpenMP
[user@vultr ~]$ ghostscript -v
GPL Ghostscript 9.07 (2013-02-14)
Copyright (C) 2012 Artifex Software, Inc. All rights reserved.
Nadalje bomo morali v sistem namestiti tudi Apache OpenOffice ali LibreOffice. Namestitev katerega koli od teh bo OpenMeetings omogočila uvoz datotek v formatih Officeovih dokumentov, kot .doc
so .docx
, .ppt
, .pptx
, ali .xlx
. V tej vadnici bomo namestili Apache OpenOffice.
Preklopite na začasni imenik in prenesite Apache OpenOffice RPM.
cd /tmp
wget https://downloads.sourceforge.net/project/openofficeorg.mirror/4.1.5/binaries/en-US/Apache_OpenOffice_4.1.5_Linux_x86-64_install-rpm_en-US.tar.gz
Razpakirajte arhiv in namestite vse pakete RPM.
tar xf Apache_OpenOffice_4.1.5_Linux_x86-64_install-rpm_en-US.tar.gz
cd en-US/RPMS
sudo rpm -Uvh *.rpm
sudo rpm -Uvh desktop-integration/openoffice4.1.5-redhat-menus-*.rpm
Če želite preveriti, ali je OpenOffice pravilno nameščen in deluje, vnesite openoffice4 -h
ukazno vrstico. Natisnil bo svojo različico in kratko pomoč.
[user@vultr ~]$ openoffice4 -h
OpenOffice 4.1.5 415m1(Build:9789)
Usage: soffice [options] [documents...]
Options:
-minimized keep startup bitmap minimized.
...
Namestite repozitorij RPMFusion v svoj sistem, saj ponuja vnaprej izdelane pakete za FFmpeg in Sound eXchange (SoX).
sudo rpm -Uvh https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
Namestite FFmpeg in SoX.
sudo yum -y install ffmpeg sox
FFmpeg in SoX bosta omogočila snemanje sestanka. Pomagali bodo tudi pri uvozu predstavnostnih datotek, kot so .avi
, .flv
, .mov
in .mp4
na tablo. Preverite namestitev tako, da preverite različice FFmpeg in SoX.
[user@vultr ~]$ sox --version
sox: SoX v14.4.1
[user@vultr ~]$ ffmpeg -version
ffmpeg version 2.8.13 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-11)
OpenMeetings podpira več vrst strežnikov baz podatkov, kot so MySQL, PostgreSQL, Apache, Derby in Oracle. V tej vadnici bomo za gostovanje baze podatkov OpenMeeting uporabili strežnik PostgreSQL.
PostgreSQL je objektno-relacijski sistem baz podatkov, znan po svoji stabilnosti in hitrosti. Privzeto yum
skladišče vsebuje staro različico PostgreSQL, zato dodajte repozitorij PostgreSQL za najnovejšo različico aplikacije v sistem.
sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm
Namestite strežnik baze podatkov PostgreSQL.
sudo yum -y install postgresql10-server postgresql10-contrib postgresql10
Inicializirajte bazo podatkov.
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
Zaženite strežnik PostgreSQL in omogočite, da se samodejno zažene ob zagonu.
sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10
Spremenite geslo za privzetega uporabnika PostgreSQL.
sudo passwd postgres
Prijavite se kot uporabnik PostgreSQL.
sudo su - postgres
Ustvarite novega uporabnika PostgreSQL za uporabnika OpenMeetings.
createuser openmeetings
Namesto . Lahko uporabite katero koli uporabniško ime openmeetings
. Preklopite na lupino PostgreSQL.
psql
Nastavite geslo za novoustvarjenega uporabnika za bazo podatkov OpenMeetings.
ALTER USER openmeetings WITH ENCRYPTED password 'DBPassword';
Zamenjajte DBPassword
z varnim geslom. Ustvarite novo bazo podatkov za namestitev OpenMeetings.
CREATE DATABASE openmeetings OWNER openmeetings;
Izstopite iz psql
lupine.
\q
Preklopite na sudo
uporabnika.
exit
Uredite pg_hba.conf
datoteko, da omogočite preverjanje pristnosti na podlagi MD5.
sudo nano /var/lib/pgsql/10/data/pg_hba.conf
Poiščite naslednje vrstice in spremenite vrednosti v METHOD
stolpcu iz ident
na md5
.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 ident
# IPv6 local connections:
host all all ::1/128 ident
Po posodobitvi bo konfiguracija videti takole.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
Shranite datoteko in zapustite urejevalnik. Znova zaženite PostgreSQL, da bodo spremembe začele veljati.
sudo systemctl restart postgresql-10
Ker so nameščene vse potrebne odvisnosti. Ustvarite novega uporabnika za OpenMeetings. Zaradi varnosti strežnika je priporočljiva uporaba nekorenskega uporabnika za izvajanje OpenMeetings.
sudo adduser -b /var -s /sbin/nologin openmeetings
Zgornji ukaz bo ustvaril tudi domači imenik openmeetings
uporabnika v /var/openmeetings
.
Preverite stran za prenos Apache OpenMeetings, da dobite povezavo do najnovejše razpoložljive izdaje. Prenesite arhiv OpenMeetings.
cd /tmp
wget http://www-us.apache.org/dist/openmeetings/4.0.1/bin/apache-openmeetings-4.0.1.tar.gz
Izvlecite arhiv v /var/openmeetings
imenik.
sudo tar xf apache-openmeetings-4.0.1.tar.gz -C /var/openmeetings
Zagotovite lastništvo datotek uporabniku OpenMeetings, ki smo ga ustvarili prej.
sudo chown -R openmeetings:openmeetings /var/openmeetings
Preden zaženemo aplikacijo, bomo morali spremeniti požarni zid, da bo dovolil vrata 5080
in 1935
.
sudo firewall-cmd --zone=public --permanent --add-port=5080/tcp
sudo firewall-cmd --zone=public --permanent --add-port=1935/tcp
sudo firewall-cmd --reload
You can now start the application.
sudo su -s /bin/bash -c 'cd /var/openmeetings/ && sh red5.sh' openmeetings
You can now access http://192.168.1.1:5080/openmeetings
in your favorite browser. You will see the welcome screen with instructions to install GhostScript.
Since we have already installed GhostScript, proceed further. On next interface, you will be prompted to provide database server details. Select database type "PostgreSql
" and provide your database server details that you configured during PostgreSQL installation.
Click on the "Check
" button and you should get the message: "Database check was successful
". Provide your administrator account details and a group name in the next interface.
Configure the basic settings of your installation; such as to allow self-registration, email verification, and default language. Also, provide your SMTP server details. If you do not have an SMTP server ready than you can also provide the SMTP details later in the administrator dashboard.
It will ask you for the path to the binaries of different applications. Provide /usr/bin
as the path for ImageMagick, FFmpeg, and SoX. If the application is providing errors for the path entered, then you can use which <binary_name>
to find the absolute path to the binary. For example, which ffmpeg
should give you /usr/bin/ffmpeg
as output. Use /opt/openoffice4
as the path to the OpenOffice binaries.
You can skip the configuration on the next interface since we are going to use the default values. Finally, click the "Finish
" button to install the application and write the database.
OpenMeetings is now installed on your server. To make it more production friendly, we will setup Systemd to manage the OpenMeetings server. We will also configure Nginx with Let's Encrypt SSL as the secured reverse proxy to serve the application.
Though we can easily start and stop the application using the command above, it is recommended to set up a Systemd service unit to manage the application. This will also ensure that the service is automatically started on boot time and failures.
Stop the OpenMeetings server either by pressing "Ctrl+C
" or by killing the shell of the openmeetings
user.
sudo pkill -KILL -u openmeetings
Ustvarite novo datoteko enote Systemd za strežnik OpenMeetings.
sudo nano /etc/systemd/system/openmeetings.service
Izpolnite datoteko.
[Unit]
Description=OpenMeeting Service
After=network.target
[Service]
Type=simple
User=openmeetings
WorkingDirectory=/var/openmeetings
ExecStart=/var/openmeetings/red5.sh
Restart=always
[Install]
WantedBy=multi-user.target
Zaženite strežnik OpenMeetings in omogočite, da se samodejno zažene ob zagonu.
sudo systemctl start openmeetings
sudo systemctl enable openmeetings
Če želite preveriti stanje storitve, lahko zaženete naslednje.
sudo systemctl status openmeetings
Videli boste podoben izhod.
[root@vultr openmeetings]# sudo systemctl status openmeetings
● openmeetings.service - OpenMeeting Service
Loaded: loaded (/etc/systemd/system/openmeetings.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2018-01-31 15:40:56 UTC; 38s ago
Main PID: 10522 (java)
CGroup: /system.slice/openmeetings.service
└─10522 /bin/java -Dred5.root=/var/openmeetings -Djava.security.debug=failure -Xms256m...
Jan 31 15:41:29 vultr.guest red5.sh[10522]: [INFO] [Loader:/openmeetings] org.red5.server.Serv...ngs
Jan 31 15:41:29 vultr.guest red5.sh[10522]: [INFO] [Loader:/openmeetings] org.red5.server.Serv...ngs
Jan 31 15:41:29 vultr.guest red5.sh[10522]: DEBUG 01-31 15:41:29.431 16603 343 o.a.o.c.r.Scope...se]
Jan 31 15:41:29 vultr.guest red5.sh[10522]: DEBUG 01-31 15:41:29.531 16703 124 o.a.o.c.r.Scope...ngs
Jan 31 15:41:34 vultr.guest red5.sh[10522]: DEBUG 01-31 15:41:34.421 21593 82 o.a.o.u.Version ...] -
Jan 31 15:41:34 vultr.guest red5.sh[10522]: ##################################################...###
Jan 31 15:41:34 vultr.guest red5.sh[10522]: # Openmeetings is up ... #
Jan 31 15:41:34 vultr.guest red5.sh[10522]: # 4.0.1 3795f14 2017-12-05T16... #
Jan 31 15:41:34 vultr.guest red5.sh[10522]: # and ready to use ... #
Jan 31 15:41:34 vultr.guest red5.sh[10522]: ##################################################...###
Hint: Some lines were ellipsized, use -l to show in full.
OpenMeetings privzeto posluša vrata 5080
. Če povezava med brskalnikom in strežnikom ni šifrirana s SSL, bodo prijave in drugi podatki poslani z navadnim besedilom. To je lahko potencialna grožnja, saj lahko nekdo, ki prisluškova omrežju, pridobi informacije. Da bi ublažili to težavo, bomo Nginx nastavili kot povratni proxy, ki bo poslušal privzeta vrata HTTPS in bo poslal vse zahteve strežniku OpenMeetings.
Namestite Nginx.
sudo yum -y install nginx
Zaženite Nginx in omogočite, da se samodejno zažene ob zagonu.
sudo systemctl start nginx
sudo systemctl enable nginx
Namestite Certbot, ki je odjemalska aplikacija za Let's Encrypt CA.
sudo yum -y install certbot
Preden lahko zahtevate potrdila, boste morali prek požarnega zidu dovoliti vrata 80
in/ 443
ali standard HTTP
ter HTTPS
storitve.
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload
Opomba: Če želite pridobiti potrdila od Let's Encrypt CA, mora biti domena, za katero naj bi bila generirana potrdila, usmerjena proti strežniku. Če ne, naredite potrebne spremembe v zapisih DNS domene in počakajte, da se DNS razširi, preden znova pošljete zahtevo za potrdilo. Certbot preveri avtoriteto domene, preden zagotovi potrdila.
Ustvarite SSL potrdila.
sudo certbot certonly --webroot -w /usr/share/nginx/html -d meetings.example.com
Ustvarjena potrdila bodo verjetno shranjena v /etc/letsencrypt/live/meetings.example.com/
. Potrdilo SSL bo shranjeno kot fullchain.pem
in zasebni ključ bo shranjen kot privkey.pem
.
Potrdila Let's Encrypt potečejo v 90 dneh, zato je priporočljivo, da nastavite samodejno obnavljanje potrdil s pomočjo opravil Cron.
Odprite datoteko opravila cron.
sudo crontab -e
Dodajte naslednjo vrstico na konec datoteke.
30 5 * * * /usr/bin/certbot renew --quiet
Zgornje opravilo cron se bo izvajalo vsak dan ob 5.30. Če potrdilo poteče, se samodejno podaljša.
Zdaj spremenite privzeto konfiguracijsko datoteko Nginx, da odstranite default_server
vrstico.
sudo sed -i 's/default_server//g' /etc/nginx/nginx.conf
Ustvarite novo konfiguracijsko datoteko za strežnik OpenMeetings.
sudo nano /etc/nginx/conf.d/meetings.example.com.conf
Izpolnite datoteko.
server {
listen 80;
server_name meetings.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name meetings.example.com;
ssl_certificate /etc/letsencrypt/live/meetings.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/meetings.example.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/openmeetings.access.log;
location / {
proxy_pass http://localhost:5080;
proxy_set_header host $host;
proxy_http_version 1.1;
proxy_set_header upgrade $http_upgrade;
proxy_set_header connection "upgrade";
}
}
Preverite, ali so v novi konfiguracijski datoteki napake.
sudo nginx -t
Če vidite naslednji izhod, je konfiguracija brez napak.
[user@vultr ~]$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Če ste prejeli kakšno napako, preverite pot do potrdil SSL. Znova zaženite spletni strežnik Nginx, da izvedete spremembo konfiguracije.
sudo systemctl restart nginx
Preden lahko začnete uporabljati aplikacijo na spletnem mestu, zaščitenem s SSL, boste morali spremeniti konfiguracijo v OpenMeetings. Prijavite se v svojo skrbniško nadzorno ploščo OpenMeetings in se pomaknite do » Administration >> Configuration
«. V tabeli ID, ključ in vrednost; najti application.base.url
. Spremenite njegovo vrednost v v https://meetings.example.com
skladu z imenom vaše domene. Shranite konfiguracijo s klikom na zgornjo ikono za shranjevanje.
Znova zaženite storitev OpenMeetings.
sudo systemctl restart openmeetings
Zdaj lahko brskate https://meetings.example.com
po svojem najljubšem spletnem brskalniku in se prijavite za uporabo aplikacije.
Čestitamo, Apache OpenMeetings je zdaj nameščen na vašem strežniku. Lahko povabite svoje prijatelje in začnete uporabljati OpenMeetings za spletne konference.
Uporaba drugega sistema? osTicket je odprtokodni sistem za izdajo vstopnic za podporo strankam. Izvorna koda osTicket je javno gostovana na Githubu. V tej vadnici
Uporaba drugega sistema? Apache OpenMeetings je odprtokodna aplikacija za spletne konference. Napisana je v Javi in podpira več strežnikov baz podatkov. jaz
Uporaba drugega sistema? Microweber je odprtokodna povleci in spusti CMS in spletna trgovina. Izvorna koda Microweber gostuje na GitHubu. Ta vodnik vam bo pokazal
Uporaba drugega sistema? Akaunting je brezplačna, odprtokodna in spletna računovodska programska oprema, zasnovana za mala podjetja in samostojne delavce. Zgrajena je pametno
Uporaba drugega sistema? InvoicePlane je brezplačna in odprtokodna aplikacija za izdajanje računov. Njegovo izvorno kodo lahko najdete v tem repozitoriju Github. Ta vodnik
Uporaba drugega sistema? Open Web Analytics (OWA) je odprtokodni program za spletno analitiko, ki ga lahko uporabite za sledenje in analizo, kako ljudje uporabljajo vaše spletno mesto.
Uporaba drugega sistema? Uvod Microweber je odprtokodna povleci in spusti CMS in spletna trgovina. Izvorna koda Microweber gostuje na GitHubu. Ta vodnik
Uporaba drugega sistema? Matomo (prej Piwik) je odprtokodna analitična platforma, odprta alternativa Google Analytics. Vir Matomo gostuje o
Uporaba drugega sistema? Zammad je odprtokodni sistem za pomoč uporabnikom/prodaja vstopnic, zasnovan za ekipe za podporo strankam. Z Zammadom, storitev za stranke
Uporaba drugega sistema? X-Cart je izjemno prilagodljiva odprtokodna platforma za e-trgovino s številnimi funkcijami in integracijami. Izvorna koda X-Cart je hoste
Uporaba drugega sistema? Matomo (prej Piwik) je odprtokodna analitična platforma, odprta alternativa Google Analytics. Vir Matomo gostuje o
Uporaba drugega sistema? Taiga je brezplačna in odprtokodna aplikacija za vodenje projektov. Za razliko od drugih orodij za vodenje projektov, Taiga uporablja inkremente
Uporaba drugega sistema? Osclass je odprtokodni projekt, ki vam omogoča preprosto ustvarjanje spletnega mesta za male oglase brez kakršnega koli tehničnega znanja. Njegov vir
Uporaba drugega sistema? X-Cart je izjemno prilagodljiva odprtokodna platforma za e-trgovino s številnimi funkcijami in integracijami. Izvorna koda X-Cart je hoste
Uporaba drugega sistema? Dolibarr je odprtokodno načrtovanje virov podjetja (ERP) in upravljanje odnosov s strankami (CRM) za podjetja. Dolibar
Uporaba drugega sistema? Akaunting je brezplačna, odprtokodna in spletna računovodska programska oprema, zasnovana za mala podjetja in samostojne delavce. Zgrajena je pametno
Uporaba drugega sistema? Uvod Attendize je odprtokodna platforma za prodajo vstopnic in upravljanje dogodkov, ki temelji na Laravel PHP Framework. Attendiz
Uporaba drugega sistema? Uvod Attendize je odprtokodna platforma za prodajo vstopnic in upravljanje dogodkov, ki temelji na Laravel PHP Framework. Attendiz
Uporaba drugega sistema? Sentrifugo HRM je brezplačna in odprtokodna aplikacija za upravljanje človeških virov. Je bogat s funkcijami in ga je enostavno konfigurirati
Pydio je alternativa programski opremi, kot sta ownCloud in NextCloud. Pydio je tudi odprtokoden, kar pomeni, da ne stane nič za uporabo in ga upravlja a
Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.
Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.
Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.
Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.
Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…
Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.
Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.
Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.
V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.
Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več