最新版本 下一页CloudPi 出来了!
用户最明显的变化是 远程更新.
随着新版本的推出,我们将可以选择直接从互联网升级我们的私有云。
这意味着从现在开始,用户将更容易获得最新的好东西,而不必从头开始。
同样,由于最常见的配置涉及使用外部USB驱动器,因此有许多新选项可以实现更好的设置。
远程更新
这是此版本的关键结构更改。
下一页CloudPi将进入 的github 获取NextCloudPi的更新,并在登录时警告用户。
用户可以通过以下方式轻松升级 nextcloudpi配置 或使用新命令
sudo ncp-update
pi@raspberrypi:~ $ sudo ncp-update Downloading updates Performing updates Installing nc-database Installing nc-ramlogs Installing nc-swapfile Installing nc-wifi Get:1 http://mirrordirector.raspbian.org jessie InRelease [14.9 kB] Get:2 http://mirrordirector.raspbian.org stretch InRelease [15.0 kB] Get:3 http://archive.raspberrypi.org jessie InRelease [22.9 kB] Get:4 http://mirrordirector.raspbian.org jessie/main armhf Packages [8,981 kB] Get:5 http://archive.raspberrypi.org jessie/main armhf Packages [145 kB] Get:6 http://mirrordirector.raspbian.org jessie/contrib armhf Packages [37.5 kB] Get:7 http://mirrordirector.raspbian.org jessie/non-free armhf Packages [70.3 kB] Get:8 http://mirrordirector.raspbian.org jessie/rpi armhf Packages [1,356 B] Get:9 http://mirrordirector.raspbian.org stretch/main armhf Packages [11.7 MB]
简易WiFi
下一页CloudPi准备通过WiFi连接!
通过以下方式配置您的访问点
sudo nextcloudpi配置
要么
sudo wicd-curses
RAM日志
此设置将日志移至RAM,这将导致以下后果
- 更好的性能:由于记录到SD的速度较慢。
- SD卡的使用寿命更长:由于不断减少将记录信息写入SD所产生的磨损大大减少了。
- 它消耗了更多的RAM:在30天正常运行时间的Raspberry Pi中,内存约为30 MB。
- 重新启动后,日志将丢失。
- 登录到内部子目录的任何新软件包 / var / log 将要求在以下位置创建文件夹 每一个 开机。
例如,在Apache中添加了新的预执行命令
ExecStartPre=/bin/mkdir -p / var / log/apache2
如果这对您来说太高级了,请不要使用此功能。
如果您想尝试并遇到麻烦,可以通过以下方式将其停用 nextcloudpi配置.
配置交换文件
由于许多人将永久性USB连接到Raspberry Pi,因此我们可以在其中拥有一个很大的交换文件。
首先,将USB驱动器配置为在启动时安装 / etc / fstab。然后,通过配置 nextcloudpi配置.
您可以使用以下方法验证结果
swapon -s
移动数据库
由于许多人将永久性USB连接到Raspberry Pi,因此我们可以在其中拥有数据库。
出于与上述相同的原因,这将改善我们的SD卡寿命,并且同样,我们的数据也将更加安全,因为与Raspberry Pi中的SD卡相比,USB驱动器不容易损坏。
提示:除非您停止使用Raspberry Pi,否则请勿将其拔下‘sudo halt’。这是SD卡损坏的秘诀。
码
#!/bin/bash # 下一页cloud installation on Raspbian # Tested with 2017-03-02-raspbian-jessie-lite.img # # Copyleft 2017 通过 Ignacio Nunez Hernanz <nacho _a_t_ ownyourbits _d_o_t_ com> # GPL licensed (see end of file) * Use at your own risk! # # Usage: # # ./installer.sh no-ip.sh <IP> (<img>) # # See installer.sh instructions for details # # Notes: # Upon each necessary restart, the system will cut the SSH session, therefore # it is required to save the state of the installation. See variable $STATE_FILE # It will be necessary to invoke this a number of times for a complete installation # # More at //crazypuppy.net/2017/02/13/nextcloud-ready-raspberry-pi-image/ # VER=11.0.1 ADMINUSER_=admin DBADMIN_=ncadmin DBPASSWD_=ownyourbits MAXFILESIZE_=768M MAXTRANSFERTIME_=3600 OPCACHEDIR=/var/www/nextcloud/data/.opcache CONFDIR=/usr/local/etc/nextcloudpi-config.d/ STATE_FILE=/home/pi/.installation_state APTINSTALL="apt-get install -y --no-install-recommends" install() { test -f $STATE_FILE && STATE=$( cat $STATE_FILE 2>/dev/null ) if [ "$STATE" == "" ]; then # RESIZE IMAGE ########################################## SECTOR=$( fdisk -l /dev/sda | grep Linux | awk '{ print $2 }' ) echo -e "d\n2\nn\np\n2\n$SECTOR\n\nw\n" | fdisk /dev/sda || true echo 0 > $STATE_FILE nohup reboot &>/dev/null & elif [ "$STATE" == "0" ]; then # UPDATE EVERYTHING ########################################## resize2fs /dev/sda2 apt-get update apt-get upgrade apt-get dist-upgrade $APTINSTALL rpi-update echo -e "y\n" | rpi-update echo 1 > $STATE_FILE nohup reboot &>/dev/null & elif [ "$STATE" == "1" ]; then # GET STRETCH SOURCES FOR HTTP2 AND PHP7 ########################################## echo "deb http://mirrordirector.raspbian.org/raspbian/ stretch main contrib non-free rpi" >> /etc/apt/sources.list cat > /etc/apt/preferences <<EOF Package: * Pin: release n=jessie Pin-Priority: 600 EOF apt-get update # INSTALL FROM STRETCH ########################################## $APTINSTALL -t stretch apache2 $APTINSTALL -t stretch php7.0 php7.0-curl php7.0-gd php7.0-fpm php7.0-cli php7.0-opcache php7.0-mbstring php7.0-xml php7.0-zip $APTINSTALL php7.0-APC $APTINSTALL libxml2-dev php-zip php-dom php-xmlwriter php-xmlreader php-gd php-curl php-mbstring debconf-set-selections <<< "mariadb-server-5.5 mysql-server/root_password password $DBPASSWD_" debconf-set-selections <<< "mariadb-server-5.5 mysql-server/root_password_again password $DBPASSWD_" $APTINSTALL mariadb-server php7.0-mysql # CONFIGURE APACHE AND PHP7 ########################################## cat >/etc/apache2/conf-available/http2.conf <<EOF Protocols h2 h2c http/1.1 H2Push on H2PushPriority * after H2PushPriority text/css before H2PushPriority image/jpeg after 32 H2PushPriority image/png after 32 H2PushPriority application/javascript interleaved SSLProtocol all -SSLv2 -SSLv3 SSLHonorCipherOrder on SSLCipherSuite 'EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS' EOF cat >> /etc/apache2/apache2.conf <<EOF <IfModule mod_headers.c> Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload" </IfModule> EOF cat > /etc/php/7.0/mods-available/apcu.ini <<EOF extension=apcu.so apc.enable_cli=0 apc.shm_size=256M apc.ttl=7200 apc.gc_ttl=3600 apc.entries_hint=4096 apc.slam_defense=1 apc.serializer=igbinary EOF cat > /etc/php/7.0/mods-available/opcache.ini <<EOF zend_extension=opcache.so opcache.file_cache=$OPCACHEDIR; opcache.fast_shutdown=1 EOF a2enmod http2 a2enconf http2 a2enmod proxy_fcgi setenvif a2enconf php7.0-fpm a2enmod rewrite a2enmod headers a2enmod env a2enmod dir a2enmod mime a2enmod ssl echo 2 > $STATE_FILE nohup reboot &>/dev/null & elif [ "$STATE" == "2" ]; then # INSTALL NEXTCLOUD ########################################## cd /var/www/ wget //download.nextcloud.com/server/releases/nextcloud-$VER.tar.bz2 -O nextcloud.tar.bz2 tar -xvf nextcloud.tar.bz2 rm nextcloud.tar.bz2 ocpath='/var/www/nextcloud' htuser='www-data' htgroup='www-data' rootuser='root' printf "Creating possible missing Directories\n" mkdir -p $ocpath/data mkdir -p $ocpath/updater mkdir -p $OPCACHEDIR printf "chmod Files and Directories\n" find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640 find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750 printf "chown Directories\n" # recommended defaults do not play well with updater app # re-check this with 每一个 new version #chown -R ${rootuser}:${htgroup} ${ocpath}/ chown -R ${htuser}:${htgroup} ${ocpath}/ chown -R ${htuser}:${htgroup} ${ocpath}/apps/ chown -R ${htuser}:${htgroup} ${ocpath}/config/ chown -R ${htuser}:${htgroup} ${ocpath}/data/ chown -R ${htuser}:${htgroup} ${ocpath}/themes/ chown -R ${htuser}:${htgroup} ${ocpath}/updater/ chown -R ${htuser}:${htgroup} $OPCACHEDIR chmod +x ${ocpath}/occ printf "chmod/chown .htaccess\n" if [ -f ${ocpath}/.htaccess ]; then # breaks updater, see above #chmod 0644 ${ocpath}/.htaccess chmod 0664 ${ocpath}/.htaccess chown ${rootuser}:${htgroup} ${ocpath}/.htaccess fi if [ -f ${ocpath}/data/.htaccess ]; then chmod 0644 ${ocpath}/data/.htaccess chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess fi cat > /etc/apache2/sites-available/000-default.conf <<'EOF' <VirtualHost _default_:80> DocumentRoot /var/www/nextcloud <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^/?(.*) //%{SERVER_NAME}/$1 [R,L] </IfModule> </VirtualHost> EOF cat > /etc/apache2/sites-available/nextcloud.conf <<'EOF' <IfModule mod_ssl.c> <VirtualHost _default_:443> DocumentRoot /var/www/nextcloud CustomLog /var/www/nextcloud/data/access.log combined ErrorLog /var/www/nextcloud/data/error.log SSLEngine on SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key </VirtualHost> <Directory /var/www/nextcloud/> Options +FollowSymlinks AllowOverride All <IfModule mod_dav.c> Dav off </IfModule> </Directory> </IfModule> EOF a2ensite nextcloud mysql -u root -p$DBPASSWD_ <<EOF CREATE DATABASE nextcloud; CREATE USER '$DBADMIN_'@'localhost' IDENTIFIED BY '$DBPASSWD_'; GRANT ALL PRIVILEGES ON nextcloud.* TO $DBADMIN_@localhost; EXIT EOF # NEXTCLOUDPI-CONFIG ########################################## $APTINSTALL dialog mkdir -p $CONFDIR sed -i '/Change User Password/i"0 下一页CloudPi Configuration" "Configuration of 下一页CloudPi" \\\\' /usr/bin/raspi-config sed -i '/1\\\\ \*) do_change_pass ;;/i0\\\\ *) nextcloudpi配置 ;;' /usr/bin/raspi-config # NEXTCLOUDPI MOTD ########################################## mkdir /etc/update-motd.d rm /etc/motd ln -s /var/run/motd /etc/motd cat > /etc/update-motd.d/10logo <<EOF #!/bin/sh echo cat /usr/local/etc/ncp-ascii.txt EOF cat > /etc/update-motd.d/20updates <<'EOF' #!/bin/bash /usr/local/bin/ncp-check-updates EOF chmod a+x /etc/update-motd.d/* # NEXTCLOUDPI UPDATES ########################################## $APTINSTALL 吉特 cat > /usr/local/bin/ncp-check-updates <<'EOF' #!/bin/bash NEED_UPDATE=false VERFILE=/var/run/.ncp-latest-version if test -f $VERFILE && grep -qP "v\d+\.\d+\.\d+" $VERFILE; then MAJOR=$( grep -oP "\d+\.\d+\.\d+" $VERFILE | cut -d. -f1 ) MINOR=$( grep -oP "\d+\.\d+\.\d+" $VERFILE | cut -d. -f2 ) PATCH=$( grep -oP "\d+\.\d+\.\d+" $VERFILE | cut -d. -f3 ) MAJ=$( grep -oP "\d+\.\d+\.\d+" /usr/local/etc/ncp-version | cut -d. -f1 ) MIN=$( grep -oP "\d+\.\d+\.\d+" /usr/local/etc/ncp-version | cut -d. -f2 ) PAT=$( grep -oP "\d+\.\d+\.\d+" /usr/local/etc/ncp-version | cut -d. -f3 ) if [[ $MAJOR > $MAJ ]]; then NEED_UPDATE=true elif [[ $MAJOR == $MAJ ]] && [[ $MINOR > $MIN ]]; then NEED_UPDATE=true elif [[ $MAJOR == $MAJ ]] && [[ $MINOR == $MIN ]] && [[ $PATCH > $PAT ]]; then NEED_UPDATE=true fi fi if $NEED_UPDATE; then echo -e "\nNextCloudPi \e[1m$( cat $VERFILE )\e[0m available!!" echo -e "update through 'nextcloudpi-config' 要么 type 'sudo ncp-update'" else echo -e "\nNextCloudPi \e[1m$( cat /usr/local/etc/ncp-version )\e[0m is up to date" fi EOF chmod a+x /usr/local/bin/ncp-check-updates cat > /etc/cron.daily/ncp-check-version <<EOF #!/bin/sh /usr/local/bin/ncp-check-version EOF chmod a+x /etc/cron.daily/ncp-check-version cat > /usr/local/bin/ncp-check-version <<'EOF' #!/bin/bash [ $(id -u) -ne 0 ] && exit 1 git clone -q --depth 1 //github.com/nachoparker/nextcloud-raspbian-generator.git /tmp/ncp-check-tmp cd /tmp/ncp-check-tmp git describe --always --tags > /var/run/.ncp-latest-version cd / rm -rf /tmp/ncp-check-tmp EOF chmod a+x /usr/local/bin/ncp-check-version cat > /usr/local/bin/ncp-update <<'EOF' #!/bin/bash echo -e "Downloading updates" rm -rf /tmp/ncp-update-tmp git clone -q --depth 1 //github.com/nachoparker/nextcloud-raspbian-generator.git /tmp/ncp-update-tmp cd /tmp/ncp-update-tmp echo -e "Performing updates" ./update.sh VER=$( 吉特 describe --always --tags ) echo $VER > /usr/local/etc/ncp-version echo $VER > /var/run/.ncp-latest-version cd / rm -rf /tmp/ncp-update-tmp echo -e "下一页CloudPi updated to version \e[1m$VER\e[0m" EOF chmod a+x /usr/local/bin/ncp-update /usr/local/bin/ncp-update fi } configure() { [ "$STATE" != "2" ] && return cd /var/www/nextcloud/ sudo -u www-data php occ maintenance:install --database \ "mysql" --database-name "nextcloud" --database-user "$DBADMIN_" --database-pass \ "$DBPASSWD_" --admin-user "$ADMINUSER_" --admin-pass "$DBPASSWD_" sudo -u www-data php occ background:cron sed -i '$s|^.*$| '\''memcache.local'\'' => '\''\\\\OC\\\\Memcache\\\\APCu'\'',\\n);|' /var/www/nextcloud/config/config.php sed -i "s/post_max_size=.*/post_max_size=$MAXFILESIZE_/" /var/www/nextcloud/.user.ini sed -i "s/upload_max_filesize=.*/upload_max_filesize=$MAXFILESIZE_/" /var/www/nextcloud/.user.ini sed -i "s/memory_limit=.*/memory_limit=$MAXFILESIZE_/" /var/www/nextcloud/.user.ini # slow transfers will be killed after this time cat >> /var/www/nextcloud/.user.ini <<< "max_execution_time=$MAXTRANSFERTIME_" echo "*/15 * * * * php -f /var/www/nextcloud/cron.php" > /tmp/crontab_http crontab -u www-data /tmp/crontab_http rm /tmp/crontab_http cat > /usr/local/bin/nextcloud-domain.sh <<'EOF' #!/bin/bash IFACE=$( ip r | grep "default via" | awk '{ print $5 }' ) IP=$( ip a | grep "global $IFACE" | grep -oP '\d{1,3}(.\d{1,3}){3}' | head -1 ) cd /var/www/nextcloud sudo -u www-data php occ config:system:set trusted_domains 1 --value=$IP EOF mkdir -p /usr/lib/systemd/system cat > /usr/lib/systemd/system/nextcloud-domain.service <<'EOF' [Unit] Description=Register Current IP as 下一页cloud trusted domain Requires=network.target After=mysql.service [Service] ExecStart=/bin/bash /usr/local/bin/nextcloud-domain.sh [Install] WantedBy=multi-user.target EOF systemctl enable nextcloud-domain } cleanup() { [ "$STATE" != "2" ] && return apt-get autoremove apt-get clean rm /var/lib/apt/lists/* -r rm -f /home/pi/.bash_history systemctl disable ssh rm $STATE_FILE nohup halt &>/dev/null & } # License # # This script is free 软件; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published 通过 # the Free Software Foundation; either version 2 of the License, 要么 # (at your option) any later version. # # This script is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY 要么 FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this script; if not, write to the # Free Software Foundation, Inc., 59 Temple Place, Suite 330, # Boston, MA 02111-1307 USA
感谢您发布这些帖子,并继续提供出色的更新。我正在密切关注您的进度,因为我刚刚购买了pi3 +套件来制作带有USB驱动器的本地网络nextcloud服务器。非常适合您的图像。
如果您建立了捐赠链接,我会很乐意向您表示支持,以表示感谢!您正在做重要的工作,因为我仅通过您的博客文章发现了owncloud / nextcloud。我希望nextcloud和其他志趣相投的产品成为主流且对普通用户而言足够容易的未来。您完全可以通过图片和帖子来实现这一目标!
好,谢谢!
我不接受捐款,而是鼓励那些鼓励我继续努力的话!
由于新功能和更新,我进行了全新安装!!
– I’启用了dnsmasq,modsecurity和nc-wifi以外的所有功能–跑ncp-update和Nextcloud运行像冠军! ðŸ〜€
做到了卷曲-sSL //install.pi-hole.net |重击
—转到/etc/lighttpd/lighttpd.conf并将端口更改为8080
— reboot
这没有’像以前的版本一样工作,我可以’t访问wan / lan上的nextcloud https或 http:// 8080 局域网上的pihole管理页面。
除了lighttpd之外的其他东西会引起冲突吗?
如果要安装其他产品,请禁用RAM日志
这是很棒的东西。奇迹般有效。节省时间。
保持滚动!
非常感谢!
纳乔(Nacho),感谢您提供的rpi nc图像!立即安装并运行。您使它变得如此简单!在此过程中,我对linux,cli和nc的了解成倍增长。您不仅在处理rpi图像开发者方面所做的事情,而且总体而言(参见您的最新帖子)都很棒。恭喜,谢谢你!
好,谢谢你的话!
如博客标题所说…我想帮助人们控制他们的计算机并传播DYI的文化并学习ðŸ™,
我不 ’不明白。我有两个问题。
Wifi找不到任何蚊帐,我’m通过腻子连接到pi,连接到以太网,但是我认为它无法启用wifi模块。
另一个问题是受信任的域,我尝试添加受信任的域,但没有将其添加到config.php中,如果我尝试手动添加它,则它会使所有程序崩溃。
另外,昨天我用sudo reboot现在重新启动了pi,它将永远不会再次启动,我不得不重新刷新SD。
似乎很有希望,但是wifi错误很奇怪,我认为其余的错误可能会解决。
您使用什么版本?您可以检查输入“ ncp-check-updates”。如果您不在v0.7.1,请使用`sudo ncp-update`更新
然后,尝试通过sudo nextcloudpi配置连接,而不是通过sudo wicd-curses连接。
在配置dnsmasq时,NextCloudPi会为您配置受信任的域。您打算如何做?在任何情况下,如果您坚持手动进行,则标准过程应该可以工作(`sudo -u www-data php occ config:system:set trust_domains 2–value = mydomain`,或编辑config.php)
在任何情况下,崩溃都与硬件问题,最有可能损坏/不兼容的SD卡或廉价电源有关。用户空间软件中没有任何东西可以使系统崩溃。那与NextCloudPi无关。
寻找wifi时可以插入以太网吗?
我没有与之相连的屏幕,因此我没有在拔掉以太网的情况下进行测试,但是我’在用wpa-supplicant配置在raspbian中成功设置了wifi之前,也许我也可以在这里使用它,但是我认为您的配置有点酷
我最新的是0.7.1
好的,我还没有尝试过dnsmasq,但是我想尝试让wifi首先工作。
您好,
您似乎发现了一个错误。实际上,如果您在连接有线接口的情况下启动,则不会出现wifi。
我注册了问题 //github.com/nachoparker/nextcloud-raspbian-generator/issues/6
请在将来报告您在此处发现的任何问题
//github.com/nachoparker/nextcloud-raspbian-generator/issues
跟踪它们并将它们标记为已解决更为合适。
如果您不想等待解决方案,可以通过以下方法使wifi工作
–按`P`(首选项)
–在“无线接口”中,键入“ wlan0”。
–点击“ F10”保存更改
–点击“ R”(刷新)以重新扫描无线网络
感谢您的反馈意见
实际上,修复很容易。请使用sudo ncp-update更新到v0.7.2,然后从sudo nextcloudpi配置中重试。
做得好。昨晚花了几个小时弄清楚fstab,现在将我的数据目录放在已挂载的cif上,所有加密都非常好!不过一个问题–如果数据目录在其他地方,nc-update安全吗?还是会默认恢复某些设置?还有没有办法关闭nextcloud暴力保护或白鱼IP?
默认情况下,蛮力关闭。您可以使用nextcloudpi-config打开或关闭它
检查fail2ban上的帖子以检查状态和白名单
//crazypuppy.net/2017/02/24/nextcloudpi-fail2ban-installer/
ncp-update不会覆盖或更改任何内容
你好Nachoparker
我只是偶然发现了您的网站。您做了我一直希望某人会做的事情。感谢您为nextcloud提供的Raspberry Pi映像。
非常感谢!
您好Nachoparker,干得好,但我’在新手方面,我需要一些建议:移动数据库不再是nextcloud登录页面之后,我该怎么做?我该如何解决?再次感谢
当我移动数据目录时的另一件事是看不到磁盘容量,而只有2Gb,显示在哪里改变?谢谢
你把它搬到哪里了?您采取了哪些步骤?
嗨,我使用nextcloudpi-config移动了所有内容,但失败了,但是首先我看到了USB磁盘的安装位置(/ media / pi / hdd名称/文件夹)。因此,磁盘已移动,但从不更新nextcloud的容量,数据库失败。