Removed INSTALL.md, docker/, mastblocksdump/
This commit is contained in:
parent
c4b1a53439
commit
6dea89b334
37 changed files with 0 additions and 6188 deletions
27
INSTALL.md
27
INSTALL.md
|
@ -1,27 +0,0 @@
|
|||
* Le indicazioni che seguono riguardano un'installazione "da zero". Se vuoi provare mastostart senza tanto sbattimento [vedi qui](https://git.lattuga.net/pongrebio/MastodonStartpage/src/master/docker/).
|
||||
|
||||
* Requisiti: apache con mod_rewrite abilitato; php (cli e "per apache") con estensioni mysqli, mbstring, pcntl, intl, json, session; mariadb (dovrebbe funzionare anche con mysql, ma non l'ho testato).
|
||||
|
||||
* Clona il repository con `git clone https://git.lattuga.net/pongrebio/MastodonStartpage.git` (poi potrai mantenerlo aggiornato con `git pull` dalla directory «MastodonStartpage»).
|
||||
|
||||
* Apache deve essere configurato (con "AllowOverride All") per servire il contenuto della directory «web/».
|
||||
|
||||
* Php dovrebbe essere configurato con un limite di memoria usabile abbastanza alto: 1 gb («memory_limit=1G») dovrebbe andar bene, ma di più (2 gb?) sarebbe anche meglio, per andare sul sicuro con un occhio al futuro (uro-uro). Tanta memoria serve per «mustard/crawler/peerscrawl.php», il crawler che recupera ricorsivamente un bel po' di istanze, al momento circa 21.000 arrivando a usare un picco di circa 750 mb (in circa 6 ore, sulla mia sgrausissima adsl). (Delle istanze recuperate da «peerscrawl.php» solo circa 2.800 finiscono poi effettivamente nel database: per tantissime l'endpoint \[dominio\]/api/v1/instance poi non risponde, o perché l'istanza è morta, oppure perché è giù, o perché non si tratta di istanza mastodon, o perché l'endpoint è disabilitato).
|
||||
|
||||
* Se vuoi provare la funzione di invio delle mail di invito alle admin delle istanze, php deve essere configurato in modo che sia in grado di inviare mail che avranno come «From:» l'indirizzo email "mittente" definibile impostando la variabile «ref_email» in «mustard/sec/mustard.ini». In questo stesso file di configurazione puoi cambiare il valore della variabile «mail_test_to» a un tuo indirizzo email valido, così da ricevere tu gli inviti; NON impostarla a stringa vuota o a false, in modo da NON inviare inviti reali alle admin delle istanze ora che non c'è ancora niente online.
|
||||
|
||||
* Per quanto riguarda Mustard...
|
||||
|
||||
* se vuoi partire con un database senza istanze e senza account admin predefiniti importa in mariadb o mysql il dump sql che puoi estrarre da «mustard/zzz-materiali/mastostart_non_popolato.sql.gz»; se invece vuoi partire con un database prepopolato di istanze e con due account admin predefiniti, importa in mariadb o mysql il dump sql che puoi estrarre da «mustard/zzz-materiali/mastostart_popolato.sql.gz»;
|
||||
|
||||
* in mariadb o mysql crea un utente con tutti i diritti sul database «mastostart»;
|
||||
|
||||
* copia il file di configurazione di esempio «mustard/sec/mustard.ini.sample» in «mustard/sec/mustard.ini»;
|
||||
|
||||
* edita «mustard/sec/mustard.ini» seguendo le istruzioni che trovi nei commenti che contiene;
|
||||
|
||||
* se il dump che hai importato è quello non popolato, crea almeno un “superadmin” per poter entrare in Mustard lanciando «php addsuperadmin.php» dalla directory «mustard/tools/»; altrimenti, se hai importato invece il dump prepopolato, puoi già entrarci "da admin di Mustard" con email «pongrebio@insicuri.net» e password «password», oppure "da admin di un'istanza invitata" (per finta, per ora) con email «mastodon@bida.im» e password «password».
|
||||
|
||||
* Per quanto riguarda il crawler che crea/aggiorna i dati relativi alle istanze nel database, si tratta di farne girare i due componenti uno dopo l'altro, la prima volta magari da shell, poi con un cron job (quotidiano? settimanale?). Per farlo è sufficiente lanciare lo script «crawl.sh» che si trova nella directory «mustard/crawler».
|
||||
|
||||
* Se il contenuto della directory «web/» sta nella DocumentRoot di apache o di un virtualhost definito in apache bona lè; però è anche possibile installare mastostart in una sottodirectory della DocumentRoot (per esempio «\[DocumentRoot\]/mastostart»), ma in questo caso, perché la parte della guida (la Mastodon Startpage) funzioni, devi impostare al percorso della sottodirectory la variabile «instpath» in «mastostart.ini» (per esempio «instpath="/mastostart"») e la direttiva «RewriteBase» in «.htaccess» (per esempio «RewriteBase "/mastostart").
|
|
@ -1,19 +0,0 @@
|
|||
FROM alpine:3
|
||||
RUN apk add --no-cache apache2 php7 php7-apache2 php7-mysqli php7-mbstring php7-pcntl php7-intl php7-json php7-session mariadb mariadb-client git rsync msmtp openssh sudo
|
||||
COPY files/sudo.conf /etc/
|
||||
COPY files/sudoers /etc/
|
||||
COPY files/my.cnf /etc/
|
||||
COPY files/httpd.conf /etc/apache2/
|
||||
COPY files/vhost.conf /etc/apache2/conf.d/
|
||||
COPY files/mastodon.help.conf /etc/apache2/conf.d/
|
||||
COPY files/sshd_config /etc/ssh/
|
||||
COPY files/php.ini /etc/php7/
|
||||
COPY files/msmtprc /etc/php7/
|
||||
COPY files/binit.sh /usr/local/bin/
|
||||
COPY files/update.sh /root/
|
||||
COPY files/mastostart_non_popolato.sql.gz /root/
|
||||
COPY files/create_user.sql /root/
|
||||
COPY files/authorized_keys /root/
|
||||
COPY files/install.sh /root/
|
||||
RUN /root/install.sh
|
||||
CMD /usr/local/bin/binit.sh
|
|
@ -1,23 +0,0 @@
|
|||
Questa cartella contiene il Dockerfile e quel che serve per generare un'immagine docker di mastostart pensata per l'hosting su bida. L'immagine pesa circa 450 mb, è basata su alpine linux e contiene apache, php, mariadb, openssh già configurati. Apache è configurato con un virtual host per mastodon.help.
|
||||
|
||||
### Come generare l'immagine docker
|
||||
|
||||
`git clone https://git.lattuga.net/pongrebio/MastodonStartpage.git` per clonare questo repo in locale.
|
||||
|
||||
Dalla directory `docker/per_hosting` del repo clonato: `docker build -t mastostart[:versione] .` ("`:versione`" è facoltativo, il "`.`" alla fine del comando no ;-) ).
|
||||
|
||||
`docker run -d mastostart[:versione]` per creare e lanciare un container.
|
||||
|
||||
Per determinare il nome e l'id del container che sta girando: `docker ps`.
|
||||
|
||||
Per aprire una shell sul container attivo: `docker exec -it <nome o id container> /bin/sh -l`; per uscirne, il buon vecchio `exit`.
|
||||
|
||||
Per provare il crawler che aggiorna il db delle istanze, dalla shell già aperta sul container: `/var/www/localhost/htdocs/mustard/crawler/crawl.sh`; nota: sulla mia sgrausissima adsl ci mette taaaanto tempo a finire, circa 10 ore: pigiare il buon vecchio `ctrl+c` se si vuole fermare il crawler prima che abbia finito ;-)
|
||||
|
||||
Per aggiornare all'ultimo commit pubblicato su lattuga il mastostart del container attivo, dalla shell già aperta: `/root/update.sh`.
|
||||
|
||||
Per aggiornare i pacchetti installati in alpine linux: `apk update && apk upgrade`.
|
||||
|
||||
Per "spegnere" il container attivo: `docker stop <nome o id container>`.
|
||||
|
||||
Per riavviarlo: `docker start <nome o id container>`.
|
|
@ -1 +0,0 @@
|
|||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDiT6v3ITObkALO8cnKNNOBCNtT8Grcby9MSUp3KHVRlwRYM5x+fVxHP+hvyJDNSQerdRl3NOPWi2dHTbH/MCmw0dyroRwYSP9Qx1SaUVRByh5/xbA5ylXpsBdtU98vaRZin5RQV84UCv8w0pNGgNtSL67Kmuf9b76ENOTQQgHd5VyOuSs9vA6MiTy0z/LgX7wZ46iYvuFhmlK6C9NFcZwzCN4c+intTMu1cC4qfylEOyjrQhDw4g0N2vxMbRapr2kk5mSTWtjddTgeiIMuBl+ZFvX1QNe33eEDnrk+n7Gmk01iqmkdwgtU8/gtjOJHpReJ8iYiI2nMk3Ten3m9joOk9dlYpBm1toV/GYiPCzLMj9eXI4mlZn6DhRVotYmUxOoGkDF68d/Pbx8vCf8GyRa7TOflUnZYvMobzsF2ApJuU9MPnr5TMxdFNBJ18DMT9ODY314IBP/bbAY2uUJYHKD1S1Nj9OKjbkULPK0pawNtZmmKKk5ocufxUsRTqaddibk= pongi@ba04b304f62f
|
|
@ -1,26 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
predown() {
|
||||
echo ""
|
||||
echo "Stoppo apache..."
|
||||
httpd -k stop
|
||||
sleep 1
|
||||
echo "Stoppo mysqld (pid: $mysqld_pid)..."
|
||||
kill $mysqld_pid
|
||||
echo "Stoppo sshd (pid: $sshd_pid)..."
|
||||
kill $sshd_pid
|
||||
exit 0
|
||||
}
|
||||
|
||||
trap 'predown' HUP INT QUIT TERM
|
||||
|
||||
echo "Lancio sshd..."
|
||||
/usr/sbin/sshd -D &
|
||||
sshd_pid=$!
|
||||
echo "Lancio mysqld..."
|
||||
/usr/bin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mariadb/plugin --user=mysql --log-error=/var/lib/mysql/mysql.err --pid-file=mysql.pid &> /dev/null &
|
||||
mysqld_pid=$!
|
||||
echo "Lancio apache..."
|
||||
httpd -k start
|
||||
|
||||
wait $!
|
|
@ -1,4 +0,0 @@
|
|||
DELETE FROM mysql.user WHERE User='' OR USER='mysql';
|
||||
CREATE USER 'MastoStartAdmin'@'%' IDENTIFIED BY 'MastoStartAdmin';
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE, LOCK TABLES ON `mastostart`.* TO 'MastoStartAdmin'@'%';
|
||||
FLUSH PRIVILEGES;
|
|
@ -1,488 +0,0 @@
|
|||
#
|
||||
# This is the main Apache HTTP server configuration file. It contains the
|
||||
# configuration directives that give the server its instructions.
|
||||
# See <URL:http://httpd.apache.org/docs/2.4/> for detailed information.
|
||||
# In particular, see
|
||||
# <URL:http://httpd.apache.org/docs/2.4/mod/directives.html>
|
||||
# for a discussion of each configuration directive.
|
||||
#
|
||||
# Do NOT simply read the instructions in here without understanding
|
||||
# what they do. They're here only as hints or reminders. If you are unsure
|
||||
# consult the online docs. You have been warned.
|
||||
#
|
||||
# Configuration and logfile names: If the filenames you specify for many
|
||||
# of the server's control files begin with "/" (or "drive:/" for Win32), the
|
||||
# server will use that explicit path. If the filenames do *not* begin
|
||||
# with "/", the value of ServerRoot is prepended -- so "logs/access_log"
|
||||
# with ServerRoot set to "/usr/local/apache2" will be interpreted by the
|
||||
# server as "/usr/local/apache2/logs/access_log", whereas "/logs/access_log"
|
||||
# will be interpreted as '/logs/access_log'.
|
||||
|
||||
#
|
||||
# ServerTokens
|
||||
# This directive configures what you return as the Server HTTP response
|
||||
# Header. The default is 'Full' which sends information about the OS-Type
|
||||
# and compiled in modules.
|
||||
# Set to one of: Full | OS | Minor | Minimal | Major | Prod
|
||||
# where Full conveys the most information, and Prod the least.
|
||||
#
|
||||
ServerTokens Prod
|
||||
|
||||
#
|
||||
# ServerRoot: The top of the directory tree under which the server's
|
||||
# configuration, error, and log files are kept.
|
||||
#
|
||||
# Do not add a slash at the end of the directory path. If you point
|
||||
# ServerRoot at a non-local disk, be sure to specify a local disk on the
|
||||
# Mutex directive, if file-based mutexes are used. If you wish to share the
|
||||
# same ServerRoot for multiple httpd daemons, you will need to change at
|
||||
# least PidFile.
|
||||
#
|
||||
ServerRoot /var/www
|
||||
|
||||
#
|
||||
# Mutex: Allows you to set the mutex mechanism and mutex file directory
|
||||
# for individual mutexes, or change the global defaults
|
||||
#
|
||||
# Uncomment and change the directory if mutexes are file-based and the default
|
||||
# mutex file directory is not on a local disk or is not appropriate for some
|
||||
# other reason.
|
||||
#
|
||||
# Mutex default:/run/apache2
|
||||
|
||||
#
|
||||
# Listen: Allows you to bind Apache to specific IP addresses and/or
|
||||
# ports, instead of the default. See also the <VirtualHost>
|
||||
# directive.
|
||||
#
|
||||
# Change this to Listen on specific IP addresses as shown below to
|
||||
# prevent Apache from glomming onto all bound IP addresses.
|
||||
#
|
||||
#Listen 12.34.56.78:80
|
||||
Listen 172.17.0.2:80
|
||||
|
||||
#
|
||||
# Dynamic Shared Object (DSO) Support
|
||||
#
|
||||
# To be able to use the functionality of a module which was built as a DSO you
|
||||
# have to place corresponding `LoadModule' lines at this location so the
|
||||
# directives contained in it are actually available _before_ they are used.
|
||||
# Statically compiled modules (those listed by `httpd -l') do not need
|
||||
# to be loaded here.
|
||||
#
|
||||
# Example:
|
||||
# LoadModule foo_module modules/mod_foo.so
|
||||
#
|
||||
#LoadModule mpm_event_module modules/mod_mpm_event.so
|
||||
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
|
||||
#LoadModule mpm_worker_module modules/mod_mpm_worker.so
|
||||
LoadModule authn_file_module modules/mod_authn_file.so
|
||||
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
|
||||
#LoadModule authn_anon_module modules/mod_authn_anon.so
|
||||
#LoadModule authn_dbd_module modules/mod_authn_dbd.so
|
||||
#LoadModule authn_socache_module modules/mod_authn_socache.so
|
||||
LoadModule authn_core_module modules/mod_authn_core.so
|
||||
LoadModule authz_host_module modules/mod_authz_host.so
|
||||
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
|
||||
LoadModule authz_user_module modules/mod_authz_user.so
|
||||
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
|
||||
#LoadModule authz_owner_module modules/mod_authz_owner.so
|
||||
#LoadModule authz_dbd_module modules/mod_authz_dbd.so
|
||||
LoadModule authz_core_module modules/mod_authz_core.so
|
||||
LoadModule access_compat_module modules/mod_access_compat.so
|
||||
LoadModule auth_basic_module modules/mod_auth_basic.so
|
||||
#LoadModule auth_form_module modules/mod_auth_form.so
|
||||
#LoadModule auth_digest_module modules/mod_auth_digest.so
|
||||
#LoadModule allowmethods_module modules/mod_allowmethods.so
|
||||
#LoadModule file_cache_module modules/mod_file_cache.so
|
||||
#LoadModule cache_module modules/mod_cache.so
|
||||
#LoadModule cache_disk_module modules/mod_cache_disk.so
|
||||
#LoadModule cache_socache_module modules/mod_cache_socache.so
|
||||
#LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
|
||||
#LoadModule socache_dbm_module modules/mod_socache_dbm.so
|
||||
#LoadModule socache_memcache_module modules/mod_socache_memcache.so
|
||||
#LoadModule socache_redis_module modules/mod_socache_redis.so
|
||||
#LoadModule watchdog_module modules/mod_watchdog.so
|
||||
#LoadModule macro_module modules/mod_macro.so
|
||||
#LoadModule dbd_module modules/mod_dbd.so
|
||||
#LoadModule dumpio_module modules/mod_dumpio.so
|
||||
#LoadModule echo_module modules/mod_echo.so
|
||||
#LoadModule buffer_module modules/mod_buffer.so
|
||||
#LoadModule data_module modules/mod_data.so
|
||||
#LoadModule ratelimit_module modules/mod_ratelimit.so
|
||||
LoadModule reqtimeout_module modules/mod_reqtimeout.so
|
||||
#LoadModule ext_filter_module modules/mod_ext_filter.so
|
||||
#LoadModule request_module modules/mod_request.so
|
||||
#LoadModule include_module modules/mod_include.so
|
||||
LoadModule filter_module modules/mod_filter.so
|
||||
#LoadModule reflector_module modules/mod_reflector.so
|
||||
#LoadModule substitute_module modules/mod_substitute.so
|
||||
#LoadModule sed_module modules/mod_sed.so
|
||||
#LoadModule charset_lite_module modules/mod_charset_lite.so
|
||||
#LoadModule deflate_module modules/mod_deflate.so
|
||||
LoadModule mime_module modules/mod_mime.so
|
||||
LoadModule log_config_module modules/mod_log_config.so
|
||||
#LoadModule log_debug_module modules/mod_log_debug.so
|
||||
#LoadModule log_forensic_module modules/mod_log_forensic.so
|
||||
#LoadModule logio_module modules/mod_logio.so
|
||||
LoadModule env_module modules/mod_env.so
|
||||
#LoadModule mime_magic_module modules/mod_mime_magic.so
|
||||
#LoadModule expires_module modules/mod_expires.so
|
||||
LoadModule headers_module modules/mod_headers.so
|
||||
#LoadModule usertrack_module modules/mod_usertrack.so
|
||||
#LoadModule unique_id_module modules/mod_unique_id.so
|
||||
LoadModule setenvif_module modules/mod_setenvif.so
|
||||
LoadModule version_module modules/mod_version.so
|
||||
#LoadModule remoteip_module modules/mod_remoteip.so
|
||||
#LoadModule session_module modules/mod_session.so
|
||||
#LoadModule session_cookie_module modules/mod_session_cookie.so
|
||||
#LoadModule session_crypto_module modules/mod_session_crypto.so
|
||||
#LoadModule session_dbd_module modules/mod_session_dbd.so
|
||||
#LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
|
||||
#LoadModule slotmem_plain_module modules/mod_slotmem_plain.so
|
||||
#LoadModule dialup_module modules/mod_dialup.so
|
||||
#LoadModule http2_module modules/mod_http2.so
|
||||
LoadModule unixd_module modules/mod_unixd.so
|
||||
#LoadModule heartbeat_module modules/mod_heartbeat.so
|
||||
#LoadModule heartmonitor_module modules/mod_heartmonitor.so
|
||||
LoadModule status_module modules/mod_status.so
|
||||
LoadModule autoindex_module modules/mod_autoindex.so
|
||||
#LoadModule asis_module modules/mod_asis.so
|
||||
#LoadModule info_module modules/mod_info.so
|
||||
#LoadModule suexec_module modules/mod_suexec.so
|
||||
<IfModule !mpm_prefork_module>
|
||||
#LoadModule cgid_module modules/mod_cgid.so
|
||||
</IfModule>
|
||||
<IfModule mpm_prefork_module>
|
||||
#LoadModule cgi_module modules/mod_cgi.so
|
||||
</IfModule>
|
||||
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
|
||||
#LoadModule negotiation_module modules/mod_negotiation.so
|
||||
LoadModule dir_module modules/mod_dir.so
|
||||
#LoadModule actions_module modules/mod_actions.so
|
||||
#LoadModule speling_module modules/mod_speling.so
|
||||
#LoadModule userdir_module modules/mod_userdir.so
|
||||
LoadModule alias_module modules/mod_alias.so
|
||||
LoadModule rewrite_module modules/mod_rewrite.so
|
||||
|
||||
LoadModule negotiation_module modules/mod_negotiation.so
|
||||
|
||||
<IfModule unixd_module>
|
||||
#
|
||||
# If you wish httpd to run as a different user or group, you must run
|
||||
# httpd as root initially and it will switch.
|
||||
#
|
||||
# User/Group: The name (or #number) of the user/group to run httpd as.
|
||||
# It is usually good practice to create a dedicated user and group for
|
||||
# running httpd, as with most system services.
|
||||
#
|
||||
User apache
|
||||
Group apache
|
||||
|
||||
</IfModule>
|
||||
|
||||
# 'Main' server configuration
|
||||
#
|
||||
# The directives in this section set up the values used by the 'main'
|
||||
# server, which responds to any requests that aren't handled by a
|
||||
# <VirtualHost> definition. These values also provide defaults for
|
||||
# any <VirtualHost> containers you may define later in the file.
|
||||
#
|
||||
# All of these directives may appear inside <VirtualHost> containers,
|
||||
# in which case these default settings will be overridden for the
|
||||
# virtual host being defined.
|
||||
#
|
||||
|
||||
#
|
||||
# ServerAdmin: Your address, where problems with the server should be
|
||||
# e-mailed. This address appears on some server-generated pages, such
|
||||
# as error documents. e.g. admin@your-domain.com
|
||||
#
|
||||
ServerAdmin pongrebio@mastodon.help
|
||||
|
||||
#
|
||||
# Optionally add a line containing the server version and virtual host
|
||||
# name to server-generated pages (internal error documents, FTP directory
|
||||
# listings, mod_status and mod_info output etc., but not CGI generated
|
||||
# documents or custom error documents).
|
||||
# Set to "EMail" to also include a mailto: link to the ServerAdmin.
|
||||
# Set to one of: On | Off | EMail
|
||||
#
|
||||
ServerSignature On
|
||||
|
||||
#
|
||||
# ServerName gives the name and port that the server uses to identify itself.
|
||||
# This can often be determined automatically, but we recommend you specify
|
||||
# it explicitly to prevent problems during startup.
|
||||
#
|
||||
# If your host doesn't have a registered DNS name, enter its IP address here.
|
||||
#
|
||||
ServerName 172.17.0.2:80
|
||||
|
||||
#
|
||||
# Deny access to the entirety of your server's filesystem. You must
|
||||
# explicitly permit access to web content directories in other
|
||||
# <Directory> blocks below.
|
||||
#
|
||||
<Directory />
|
||||
AllowOverride none
|
||||
Require all denied
|
||||
</Directory>
|
||||
|
||||
#
|
||||
# Note that from this point forward you must specifically allow
|
||||
# particular features to be enabled - so if something's not working as
|
||||
# you might expect, make sure that you have specifically enabled it
|
||||
# below.
|
||||
#
|
||||
|
||||
#
|
||||
# DocumentRoot: The directory out of which you will serve your
|
||||
# documents. By default, all requests are taken from this directory, but
|
||||
# symbolic links and aliases may be used to point to other locations.
|
||||
#
|
||||
DocumentRoot "/var/www/localhost/htdocs"
|
||||
<Directory "/var/www/localhost/htdocs">
|
||||
#
|
||||
# Possible values for the Options directive are "None", "All",
|
||||
# or any combination of:
|
||||
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
|
||||
#
|
||||
# Note that "MultiViews" must be named *explicitly* --- "Options All"
|
||||
# doesn't give it to you.
|
||||
#
|
||||
# The Options directive is both complicated and important. Please see
|
||||
# http://httpd.apache.org/docs/2.4/mod/core.html#options
|
||||
# for more information.
|
||||
#
|
||||
Options Indexes FollowSymLinks
|
||||
|
||||
#
|
||||
# AllowOverride controls what directives may be placed in .htaccess files.
|
||||
# It can be "All", "None", or any combination of the keywords:
|
||||
# AllowOverride FileInfo AuthConfig Limit
|
||||
#
|
||||
AllowOverride All
|
||||
|
||||
#
|
||||
# Controls who can get stuff from this server.
|
||||
#
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
#
|
||||
# DirectoryIndex: sets the file that Apache will serve if a directory
|
||||
# is requested.
|
||||
#
|
||||
<IfModule dir_module>
|
||||
DirectoryIndex index.html
|
||||
</IfModule>
|
||||
|
||||
#
|
||||
# The following lines prevent .htaccess and .htpasswd files from being
|
||||
# viewed by Web clients.
|
||||
#
|
||||
<Files ".ht*">
|
||||
Require all denied
|
||||
</Files>
|
||||
|
||||
#
|
||||
# ErrorLog: The location of the error log file.
|
||||
# If you do not specify an ErrorLog directive within a <VirtualHost>
|
||||
# container, error messages relating to that virtual host will be
|
||||
# logged here. If you *do* define an error logfile for a <VirtualHost>
|
||||
# container, that host's errors will be logged there and not here.
|
||||
#
|
||||
ErrorLog logs/error.log
|
||||
|
||||
#
|
||||
# LogLevel: Control the number of messages logged to the error_log.
|
||||
# Possible values include: debug, info, notice, warn, error, crit,
|
||||
# alert, emerg.
|
||||
#
|
||||
LogLevel warn
|
||||
|
||||
<IfModule log_config_module>
|
||||
#
|
||||
# The following directives define some format nicknames for use with
|
||||
# a CustomLog directive (see below).
|
||||
#
|
||||
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
|
||||
LogFormat "%h %l %u %t \"%r\" %>s %b" common
|
||||
|
||||
<IfModule logio_module>
|
||||
# You need to enable mod_logio.c to use %I and %O
|
||||
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
|
||||
</IfModule>
|
||||
|
||||
#
|
||||
# The location and format of the access logfile (Common Logfile Format).
|
||||
# If you do not define any access logfiles within a <VirtualHost>
|
||||
# container, they will be logged here. Contrariwise, if you *do*
|
||||
# define per-<VirtualHost> access logfiles, transactions will be
|
||||
# logged therein and *not* in this file.
|
||||
#
|
||||
#CustomLog logs/access.log common
|
||||
|
||||
#
|
||||
# If you prefer a logfile with access, agent, and referer information
|
||||
# (Combined Logfile Format) you can use the following directive.
|
||||
#
|
||||
CustomLog logs/access.log combined
|
||||
</IfModule>
|
||||
|
||||
<IfModule alias_module>
|
||||
#
|
||||
# Redirect: Allows you to tell clients about documents that used to
|
||||
# exist in your server's namespace, but do not anymore. The client
|
||||
# will make a new request for the document at its new location.
|
||||
# Example:
|
||||
# Redirect permanent /foo http://www.example.com/bar
|
||||
|
||||
#
|
||||
# Alias: Maps web paths into filesystem paths and is used to
|
||||
# access content that does not live under the DocumentRoot.
|
||||
# Example:
|
||||
# Alias /webpath /full/filesystem/path
|
||||
#
|
||||
# If you include a trailing / on /webpath then the server will
|
||||
# require it to be present in the URL. You will also likely
|
||||
# need to provide a <Directory> section to allow access to
|
||||
# the filesystem path.
|
||||
|
||||
#
|
||||
# ScriptAlias: This controls which directories contain server scripts.
|
||||
# ScriptAliases are essentially the same as Aliases, except that
|
||||
# documents in the target directory are treated as applications and
|
||||
# run by the server when requested rather than as documents sent to the
|
||||
# client. The same rules about trailing "/" apply to ScriptAlias
|
||||
# directives as to Alias.
|
||||
#
|
||||
ScriptAlias /cgi-bin/ "/var/www/localhost/cgi-bin/"
|
||||
|
||||
</IfModule>
|
||||
|
||||
<IfModule cgid_module>
|
||||
#
|
||||
# ScriptSock: On threaded servers, designate the path to the UNIX
|
||||
# socket used to communicate with the CGI daemon of mod_cgid.
|
||||
#
|
||||
#Scriptsock cgisock
|
||||
</IfModule>
|
||||
|
||||
#
|
||||
# "/var/www/localhost/cgi-bin" should be changed to whatever your ScriptAliased
|
||||
# CGI directory exists, if you have that configured.
|
||||
#
|
||||
<Directory "/var/www/localhost/cgi-bin">
|
||||
AllowOverride None
|
||||
Options None
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
<IfModule headers_module>
|
||||
#
|
||||
# Avoid passing HTTP_PROXY environment to CGI's on this or any proxied
|
||||
# backend servers which have lingering "httpoxy" defects.
|
||||
# 'Proxy' request header is undefined by the IETF, not listed by IANA
|
||||
#
|
||||
RequestHeader unset Proxy early
|
||||
</IfModule>
|
||||
|
||||
<IfModule mime_module>
|
||||
#
|
||||
# TypesConfig points to the file containing the list of mappings from
|
||||
# filename extension to MIME-type.
|
||||
#
|
||||
TypesConfig /etc/apache2/mime.types
|
||||
|
||||
#
|
||||
# AddType allows you to add to or override the MIME configuration
|
||||
# file specified in TypesConfig for specific file types.
|
||||
#
|
||||
#AddType application/x-gzip .tgz
|
||||
#
|
||||
# AddEncoding allows you to have certain browsers uncompress
|
||||
# information on the fly. Note: Not all browsers support this.
|
||||
#
|
||||
#AddEncoding x-compress .Z
|
||||
#AddEncoding x-gzip .gz .tgz
|
||||
#
|
||||
# If the AddEncoding directives above are commented-out, then you
|
||||
# probably should define those extensions to indicate media types:
|
||||
#
|
||||
AddType application/x-compress .Z
|
||||
AddType application/x-gzip .gz .tgz
|
||||
|
||||
#
|
||||
# AddHandler allows you to map certain file extensions to "handlers":
|
||||
# actions unrelated to filetype. These can be either built into the server
|
||||
# or added with the Action directive (see below)
|
||||
#
|
||||
# To use CGI scripts outside of ScriptAliased directories:
|
||||
# (You will also need to add "ExecCGI" to the "Options" directive.)
|
||||
#
|
||||
#AddHandler cgi-script .cgi
|
||||
|
||||
# For type maps (negotiated resources):
|
||||
#AddHandler type-map var
|
||||
|
||||
#
|
||||
# Filters allow you to process content before it is sent to the client.
|
||||
#
|
||||
# To parse .shtml files for server-side includes (SSI):
|
||||
# (You will also need to add "Includes" to the "Options" directive.)
|
||||
#
|
||||
#AddType text/html .shtml
|
||||
#AddOutputFilter INCLUDES .shtml
|
||||
</IfModule>
|
||||
|
||||
#
|
||||
# The mod_mime_magic module allows the server to use various hints from the
|
||||
# contents of the file itself to determine its type. The MIMEMagicFile
|
||||
# directive tells the module where the hint definitions are located.
|
||||
#
|
||||
<IfModule mime_magic_module>
|
||||
MIMEMagicFile /etc/apache2/magic
|
||||
</IfModule>
|
||||
|
||||
#
|
||||
# Customizable error responses come in three flavors:
|
||||
# 1) plain text 2) local redirects 3) external redirects
|
||||
#
|
||||
# Some examples:
|
||||
#ErrorDocument 500 "The server made a boo boo."
|
||||
#ErrorDocument 404 /missing.html
|
||||
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
|
||||
#ErrorDocument 402 http://www.example.com/subscription_info.html
|
||||
#
|
||||
|
||||
#
|
||||
# MaxRanges: Maximum number of Ranges in a request before
|
||||
# returning the entire resource, or one of the special
|
||||
# values 'default', 'none' or 'unlimited'.
|
||||
# Default setting is to accept 200 Ranges.
|
||||
#MaxRanges unlimited
|
||||
|
||||
#
|
||||
# EnableMMAP and EnableSendfile: On systems that support it,
|
||||
# memory-mapping or the sendfile syscall may be used to deliver
|
||||
# files. This usually improves server performance, but must
|
||||
# be turned off when serving from networked-mounted
|
||||
# filesystems or if support for these functions is otherwise
|
||||
# broken on your system.
|
||||
# Defaults: EnableMMAP On, EnableSendfile Off
|
||||
#
|
||||
#EnableMMAP off
|
||||
#EnableSendfile on
|
||||
|
||||
# Load config files from the config directory "/etc/apache2/conf.d".
|
||||
#
|
||||
#IncludeOptional /etc/apache2/conf.d/*.conf
|
||||
|
||||
Include /etc/apache2/conf.d/default.conf
|
||||
Include /etc/apache2/conf.d/languages.conf
|
||||
Include /etc/apache2/conf.d/mpm.conf
|
||||
Include /etc/apache2/conf.d/php7-module.conf
|
||||
Include /etc/apache2/conf.d/vhost.conf
|
||||
Include /etc/apache2/conf.d/mastodon.help.conf
|
|
@ -1,46 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
cd /root
|
||||
|
||||
mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
|
||||
|
||||
mysqld_safe &
|
||||
|
||||
sleep 5
|
||||
|
||||
gzip -d mastostart_non_popolato.sql.gz
|
||||
|
||||
mysql -e 'source mastostart_non_popolato.sql'
|
||||
|
||||
mysql -e 'source create_user.sql'
|
||||
|
||||
git clone https://git.lattuga.net/pongrebio/MastodonStartpage.git
|
||||
|
||||
mkdir /var/www/mastodon.help
|
||||
|
||||
rsync -av MastodonStartpage/web/ /var/www/mastodon.help/
|
||||
|
||||
cp /var/www/mastodon.help/mustard/sec/mustard.ini.sample /var/www/mastodon.help/mustard/sec/mustard.ini
|
||||
|
||||
chown apache /etc/php7/msmtprc
|
||||
|
||||
chmod go-r /etc/php7/msmtprc
|
||||
|
||||
chown apache /var/log/apache2/
|
||||
|
||||
ssh-keygen -A
|
||||
|
||||
addgroup pongi
|
||||
|
||||
adduser -g "Pongrèbio" -G pongi -D pongi
|
||||
|
||||
passwd -d pongi
|
||||
|
||||
adduser pongi wheel
|
||||
|
||||
mkdir /home/pongi/.ssh
|
||||
mv /root/authorized_keys /home/pongi/.ssh
|
||||
chown -R pongi:pongi /home/pongi/.ssh
|
||||
chmod go-rx /home/pongi/.ssh
|
||||
|
||||
exit 0
|
|
@ -1,27 +0,0 @@
|
|||
<VirtualHost 172.17.0.2:80>
|
||||
|
||||
ServerAdmin pongrebio@mastodon.help
|
||||
ServerName mastodon.help
|
||||
|
||||
DocumentRoot "/var/www/mastodon.help"
|
||||
|
||||
<Directory "/var/www/mastodon.help">
|
||||
Options Indexes FollowSymLinks
|
||||
AllowOverride All
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
# SSLEngine on
|
||||
# SSLProtocol -all +TLSv1.2
|
||||
# SSLHonorCipherOrder on
|
||||
# SSLCipherSuite EECDH+AESGCM:AES256+EECDH:AES128+EECDH
|
||||
# SSLCompression off
|
||||
# SSLSessionTickets off
|
||||
## SSLStaplingResponderTimeout 5
|
||||
## SSLStaplingReturnResponderErrors off
|
||||
## SSLUseStapling on
|
||||
|
||||
# SSLCertificateFile /etc/letsencrypt/live/mastodon.help/fullchain.pem
|
||||
# SSLCertificateKeyFile /etc/letsencrypt/live/mastodon.help/privkey.pem
|
||||
|
||||
</VirtualHost>
|
Binary file not shown.
|
@ -1,12 +0,0 @@
|
|||
account phpmail
|
||||
host x.x.x
|
||||
port 587
|
||||
tls on
|
||||
auth on
|
||||
user x@x.x
|
||||
password xxx
|
||||
from x@x.x
|
||||
logfile /var/log/apache2/msmtp.log
|
||||
syslog off
|
||||
|
||||
account default : phpmail
|
|
@ -1,21 +0,0 @@
|
|||
# This group is read both both by the client and the server
|
||||
# use it for options that affect everything
|
||||
[client-server]
|
||||
|
||||
[client]
|
||||
default-character-set = utf8mb4
|
||||
|
||||
[mysql]
|
||||
default-character-set = utf8mb4
|
||||
auto-rehash
|
||||
|
||||
# This group is read by the server
|
||||
[mysqld]
|
||||
collation_server = utf8mb4_unicode_ci
|
||||
character_set_server = utf8mb4
|
||||
|
||||
# Disabling symbolic-links is recommended to prevent assorted security risks
|
||||
symbolic-links=0
|
||||
|
||||
# include all files from the config directory
|
||||
!includedir /etc/my.cnf.d
|
File diff suppressed because it is too large
Load diff
|
@ -1,123 +0,0 @@
|
|||
# $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $
|
||||
|
||||
# This is the sshd server system-wide configuration file. See
|
||||
# sshd_config(5) for more information.
|
||||
|
||||
# This sshd was compiled with PATH=/bin:/usr/bin:/sbin:/usr/sbin
|
||||
|
||||
# The strategy used for options in the default sshd_config shipped with
|
||||
# OpenSSH is to specify options with their default value where
|
||||
# possible, but leave them commented. Uncommented options override the
|
||||
# default value.
|
||||
|
||||
#Port 22
|
||||
#AddressFamily any
|
||||
#ListenAddress 0.0.0.0
|
||||
#ListenAddress ::
|
||||
|
||||
#HostKey /etc/ssh/ssh_host_rsa_key
|
||||
#HostKey /etc/ssh/ssh_host_ecdsa_key
|
||||
#HostKey /etc/ssh/ssh_host_ed25519_key
|
||||
|
||||
# Ciphers and keying
|
||||
#RekeyLimit default none
|
||||
|
||||
# Logging
|
||||
#SyslogFacility AUTH
|
||||
#LogLevel INFO
|
||||
|
||||
# Authentication:
|
||||
|
||||
#LoginGraceTime 2m
|
||||
#PermitRootLogin prohibit-password
|
||||
PermitRootLogin no
|
||||
#StrictModes yes
|
||||
#MaxAuthTries 6
|
||||
#MaxSessions 10
|
||||
|
||||
#PubkeyAuthentication yes
|
||||
|
||||
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
|
||||
# but this is overridden so installations will only check .ssh/authorized_keys
|
||||
AuthorizedKeysFile .ssh/authorized_keys
|
||||
|
||||
#AuthorizedPrincipalsFile none
|
||||
|
||||
#AuthorizedKeysCommand none
|
||||
#AuthorizedKeysCommandUser nobody
|
||||
|
||||
# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
|
||||
#HostbasedAuthentication no
|
||||
# Change to yes if you don't trust ~/.ssh/known_hosts for
|
||||
# HostbasedAuthentication
|
||||
#IgnoreUserKnownHosts no
|
||||
# Don't read the user's ~/.rhosts and ~/.shosts files
|
||||
#IgnoreRhosts yes
|
||||
|
||||
# To disable tunneled clear text passwords, change to no here!
|
||||
#PasswordAuthentication yes
|
||||
PasswordAuthentication no
|
||||
#PermitEmptyPasswords no
|
||||
|
||||
# Change to no to disable s/key passwords
|
||||
#ChallengeResponseAuthentication yes
|
||||
ChallengeResponseAuthentication no
|
||||
|
||||
# Kerberos options
|
||||
#KerberosAuthentication no
|
||||
#KerberosOrLocalPasswd yes
|
||||
#KerberosTicketCleanup yes
|
||||
#KerberosGetAFSToken no
|
||||
|
||||
# GSSAPI options
|
||||
#GSSAPIAuthentication no
|
||||
#GSSAPICleanupCredentials yes
|
||||
|
||||
# Set this to 'yes' to enable PAM authentication, account processing,
|
||||
# and session processing. If this is enabled, PAM authentication will
|
||||
# be allowed through the ChallengeResponseAuthentication and
|
||||
# PasswordAuthentication. Depending on your PAM configuration,
|
||||
# PAM authentication via ChallengeResponseAuthentication may bypass
|
||||
# the setting of "PermitRootLogin without-password".
|
||||
# If you just want the PAM account and session checks to run without
|
||||
# PAM authentication, then enable this but set PasswordAuthentication
|
||||
# and ChallengeResponseAuthentication to 'no'.
|
||||
#UsePAM no
|
||||
|
||||
#AllowAgentForwarding yes
|
||||
# Feel free to re-enable these if your use case requires them.
|
||||
AllowTcpForwarding no
|
||||
GatewayPorts no
|
||||
X11Forwarding no
|
||||
#X11DisplayOffset 10
|
||||
#X11UseLocalhost yes
|
||||
#PermitTTY yes
|
||||
#PrintMotd yes
|
||||
#PrintLastLog yes
|
||||
#TCPKeepAlive yes
|
||||
#PermitUserEnvironment no
|
||||
#Compression delayed
|
||||
#ClientAliveInterval 0
|
||||
#ClientAliveCountMax 3
|
||||
#UseDNS no
|
||||
#PidFile /run/sshd.pid
|
||||
#MaxStartups 10:30:100
|
||||
#PermitTunnel no
|
||||
#ChrootDirectory none
|
||||
#VersionAddendum none
|
||||
|
||||
# no default banner path
|
||||
#Banner none
|
||||
|
||||
# override default of no subsystems
|
||||
Subsystem sftp /usr/lib/ssh/sftp-server
|
||||
|
||||
# Example of overriding settings on a per-user basis
|
||||
#Match User anoncvs
|
||||
# X11Forwarding no
|
||||
# AllowTcpForwarding no
|
||||
# PermitTTY no
|
||||
# ForceCommand cvs server
|
||||
|
||||
AllowUsers pongi
|
||||
|
|
@ -1 +0,0 @@
|
|||
Set disable_coredump false
|
|
@ -1,97 +0,0 @@
|
|||
## sudoers file.
|
||||
##
|
||||
## This file MUST be edited with the 'visudo' command as root.
|
||||
## Failure to use 'visudo' may result in syntax or file permission errors
|
||||
## that prevent sudo from running.
|
||||
##
|
||||
## See the sudoers man page for the details on how to write a sudoers file.
|
||||
##
|
||||
|
||||
##
|
||||
## Host alias specification
|
||||
##
|
||||
## Groups of machines. These may include host names (optionally with wildcards),
|
||||
## IP addresses, network numbers or netgroups.
|
||||
# Host_Alias WEBSERVERS = www1, www2, www3
|
||||
|
||||
##
|
||||
## User alias specification
|
||||
##
|
||||
## Groups of users. These may consist of user names, uids, Unix groups,
|
||||
## or netgroups.
|
||||
# User_Alias ADMINS = millert, dowdy, mikef
|
||||
|
||||
##
|
||||
## Cmnd alias specification
|
||||
##
|
||||
## Groups of commands. Often used to group related commands together.
|
||||
# Cmnd_Alias PROCESSES = /usr/bin/nice, /bin/kill, /usr/bin/renice, \
|
||||
# /usr/bin/pkill, /usr/bin/top
|
||||
# Cmnd_Alias REBOOT = /sbin/halt, /sbin/reboot, /sbin/poweroff
|
||||
|
||||
##
|
||||
## Defaults specification
|
||||
##
|
||||
## You may wish to keep some of the following environment variables
|
||||
## when running commands via sudo.
|
||||
##
|
||||
## Locale settings
|
||||
# Defaults env_keep += "LANG LANGUAGE LINGUAS LC_* _XKB_CHARSET"
|
||||
##
|
||||
## Run X applications through sudo; HOME is used to find the
|
||||
## .Xauthority file. Note that other programs use HOME to find
|
||||
## configuration files and this may lead to privilege escalation!
|
||||
# Defaults env_keep += "HOME"
|
||||
##
|
||||
## X11 resource path settings
|
||||
# Defaults env_keep += "XAPPLRESDIR XFILESEARCHPATH XUSERFILESEARCHPATH"
|
||||
##
|
||||
## Desktop path settings
|
||||
# Defaults env_keep += "QTDIR KDEDIR"
|
||||
##
|
||||
## Allow sudo-run commands to inherit the callers' ConsoleKit session
|
||||
# Defaults env_keep += "XDG_SESSION_COOKIE"
|
||||
##
|
||||
## Uncomment to enable special input methods. Care should be taken as
|
||||
## this may allow users to subvert the command being run via sudo.
|
||||
# Defaults env_keep += "XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER"
|
||||
##
|
||||
## Uncomment to use a hard-coded PATH instead of the user's to find commands
|
||||
# Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
||||
##
|
||||
## Uncomment to send mail if the user does not enter the correct password.
|
||||
# Defaults mail_badpass
|
||||
##
|
||||
## Uncomment to enable logging of a command's output, except for
|
||||
## sudoreplay and reboot. Use sudoreplay to play back logged sessions.
|
||||
# Defaults log_output
|
||||
# Defaults!/usr/bin/sudoreplay !log_output
|
||||
# Defaults!/usr/local/bin/sudoreplay !log_output
|
||||
# Defaults!REBOOT !log_output
|
||||
|
||||
##
|
||||
## Runas alias specification
|
||||
##
|
||||
|
||||
##
|
||||
## User privilege specification
|
||||
##
|
||||
root ALL=(ALL) ALL
|
||||
|
||||
## Uncomment to allow members of group wheel to execute any command
|
||||
# %wheel ALL=(ALL) ALL
|
||||
|
||||
## Same thing without a password
|
||||
%wheel ALL=(ALL) NOPASSWD: ALL
|
||||
|
||||
## Uncomment to allow members of group sudo to execute any command
|
||||
# %sudo ALL=(ALL) ALL
|
||||
|
||||
## Uncomment to allow any user to run sudo if they know the password
|
||||
## of the user they are running the command as (root by default).
|
||||
# Defaults targetpw # Ask for the password of the target user
|
||||
# ALL ALL=(ALL) ALL # WARNING: only use this together with 'Defaults targetpw'
|
||||
|
||||
## Read drop-in files from /etc/sudoers.d
|
||||
## (the '#' here does not indicate a comment)
|
||||
#includedir /etc/sudoers.d
|
|
@ -1,6 +0,0 @@
|
|||
#!/bin/sh
|
||||
BASEDIR=$(dirname "$0")
|
||||
cd "$BASEDIR/MastodonStartpage"
|
||||
git pull
|
||||
cd ..
|
||||
rsync -av --filter "protect mustard/crawler/peers" --filter "protect mustard/sec/mustard.ini" --delete-after MastodonStartpage/web/ /var/www/mastodon.help/
|
|
@ -1,6 +0,0 @@
|
|||
<VirtualHost 172.17.0.2:80>
|
||||
|
||||
ServerAdmin pongrebio@mastodon.help
|
||||
DocumentRoot "/var/www/localhost/htdocs"
|
||||
|
||||
</VirtualHost>
|
|
@ -1,13 +0,0 @@
|
|||
FROM alpine:3
|
||||
RUN apk add --no-cache apache2 php7 php7-apache2 php7-mysqli php7-mbstring php7-pcntl php7-intl php7-json php7-session mariadb mariadb-client git rsync msmtp
|
||||
COPY files/my.cnf /etc/my.cnf
|
||||
COPY files/httpd.conf /etc/apache2/
|
||||
COPY files/php.ini /etc/php7/
|
||||
COPY files/msmtprc /etc/php7/
|
||||
COPY files/binit.sh /usr/local/bin/
|
||||
COPY files/update.sh /root/
|
||||
COPY files/mastostart_popolato.sql.gz /root/
|
||||
COPY files/create_user.sql /root/
|
||||
COPY files/install.sh /root/
|
||||
RUN /root/install.sh
|
||||
CMD /usr/local/bin/binit.sh
|
|
@ -1,25 +0,0 @@
|
|||
Questa cartella contiene il Dockerfile e quel che serve per generare un'immagine docker di mastostart su cui è possibile fare prove. L'immagine è basata su alpine linux e contiene apache, php, mariadb già configurati. Al momento pesa circa 450 mb.
|
||||
|
||||
### Come generare l'immagine docker
|
||||
|
||||
`git clone https://git.lattuga.net/pongrebio/MastodonStartpage.git` per clonare questo repo in locale.
|
||||
|
||||
Dalla directory `docker/prova` del repo clonato: `docker build -t mastostart[:versione] .` (":versione" è facoltativo, il "." alla fine del comando no ;-) ).
|
||||
|
||||
`docker run -d mastostart[:versione]` per creare e lanciare un container.
|
||||
|
||||
A questo punto, per vedere in locale la Mastodon Startpage, aprire un browser su [http://172.17.0.2](http://172.17.0.2).
|
||||
|
||||
Se si vuole provare anche Mustard, il "lato admin" del motore di ricerca istanze mastodon che stiamo accrocchiando (e il cui "lato utente" è ancora da fare), aprire il browser su [http://172.17.0.2/mustard](http://172.17.0.2/mustard); email `pongrebio@insicuri.net` e password `password` per entrare come admin; email `mastodon@bida.im` e password `password` per entrare come "admin di un'istanza invitata". La possibilità di invitare admin di altre istanze non è attiva, al momento.
|
||||
|
||||
Per determinare il nome e l'id del container che sta girando: `docker ps`.
|
||||
|
||||
Per provare il crawler che aggiorna il db delle istanze: `docker exec -it <nome o id container> /var/www/localhost/htdocs/mustard/crawler/crawl.sh` (sulla mia sgrausissima adsl ci mette taaaanto tempo a finire, circa 10 ore: pigiare il buon vecchio `ctrl+c` se si vuole fermare il crawler prima che abbia finito ;-) ).
|
||||
|
||||
Per aggiornare all'ultimo commit pubblicato su lattuga il mastostart del container attivo: `docker exec -it <nome o id container> /root/update.sh`.
|
||||
|
||||
Per aprire una shell sul container attivo: `docker exec -it <nome o id container> /bin/sh -l`; per uscirne, il buon vecchio `exit`.
|
||||
|
||||
Per "spegnere" il container attivo: `docker stop <nome o id container>`.
|
||||
|
||||
Per riavviarlo: `docker start <nome o id container>`.
|
|
@ -1,20 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
predown() {
|
||||
echo -e "\nStoppo tutto..."
|
||||
echo "Stoppo apache..."
|
||||
httpd -k stop
|
||||
echo "Stoppo mysqld (pid: $mysqld_pid)..."
|
||||
kill $mysqld_pid
|
||||
exit 0
|
||||
}
|
||||
|
||||
trap 'predown' HUP INT QUIT TERM
|
||||
|
||||
echo "Lancio mysqld..."
|
||||
/usr/bin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mariadb/plugin --user=mysql --log-error=/var/lib/mysql/mysql.err --pid-file=mysql.pid &> /dev/null &
|
||||
mysqld_pid=$!
|
||||
echo "Lancio apache..."
|
||||
httpd -k start
|
||||
|
||||
wait $!
|
|
@ -1,4 +0,0 @@
|
|||
DELETE FROM mysql.user WHERE User='' OR USER='mysql';
|
||||
CREATE USER 'MastoStartAdmin'@'%' IDENTIFIED BY 'MastoStartAdmin';
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE, LOCK TABLES ON `mastostart`.* TO 'MastoStartAdmin'@'%';
|
||||
FLUSH PRIVILEGES;
|
|
@ -1,486 +0,0 @@
|
|||
#
|
||||
# This is the main Apache HTTP server configuration file. It contains the
|
||||
# configuration directives that give the server its instructions.
|
||||
# See <URL:http://httpd.apache.org/docs/2.4/> for detailed information.
|
||||
# In particular, see
|
||||
# <URL:http://httpd.apache.org/docs/2.4/mod/directives.html>
|
||||
# for a discussion of each configuration directive.
|
||||
#
|
||||
# Do NOT simply read the instructions in here without understanding
|
||||
# what they do. They're here only as hints or reminders. If you are unsure
|
||||
# consult the online docs. You have been warned.
|
||||
#
|
||||
# Configuration and logfile names: If the filenames you specify for many
|
||||
# of the server's control files begin with "/" (or "drive:/" for Win32), the
|
||||
# server will use that explicit path. If the filenames do *not* begin
|
||||
# with "/", the value of ServerRoot is prepended -- so "logs/access_log"
|
||||
# with ServerRoot set to "/usr/local/apache2" will be interpreted by the
|
||||
# server as "/usr/local/apache2/logs/access_log", whereas "/logs/access_log"
|
||||
# will be interpreted as '/logs/access_log'.
|
||||
|
||||
#
|
||||
# ServerTokens
|
||||
# This directive configures what you return as the Server HTTP response
|
||||
# Header. The default is 'Full' which sends information about the OS-Type
|
||||
# and compiled in modules.
|
||||
# Set to one of: Full | OS | Minor | Minimal | Major | Prod
|
||||
# where Full conveys the most information, and Prod the least.
|
||||
#
|
||||
ServerTokens Prod
|
||||
|
||||
#
|
||||
# ServerRoot: The top of the directory tree under which the server's
|
||||
# configuration, error, and log files are kept.
|
||||
#
|
||||
# Do not add a slash at the end of the directory path. If you point
|
||||
# ServerRoot at a non-local disk, be sure to specify a local disk on the
|
||||
# Mutex directive, if file-based mutexes are used. If you wish to share the
|
||||
# same ServerRoot for multiple httpd daemons, you will need to change at
|
||||
# least PidFile.
|
||||
#
|
||||
ServerRoot /var/www
|
||||
|
||||
#
|
||||
# Mutex: Allows you to set the mutex mechanism and mutex file directory
|
||||
# for individual mutexes, or change the global defaults
|
||||
#
|
||||
# Uncomment and change the directory if mutexes are file-based and the default
|
||||
# mutex file directory is not on a local disk or is not appropriate for some
|
||||
# other reason.
|
||||
#
|
||||
# Mutex default:/run/apache2
|
||||
|
||||
#
|
||||
# Listen: Allows you to bind Apache to specific IP addresses and/or
|
||||
# ports, instead of the default. See also the <VirtualHost>
|
||||
# directive.
|
||||
#
|
||||
# Change this to Listen on specific IP addresses as shown below to
|
||||
# prevent Apache from glomming onto all bound IP addresses.
|
||||
#
|
||||
#Listen 12.34.56.78:80
|
||||
Listen 80
|
||||
|
||||
#
|
||||
# Dynamic Shared Object (DSO) Support
|
||||
#
|
||||
# To be able to use the functionality of a module which was built as a DSO you
|
||||
# have to place corresponding `LoadModule' lines at this location so the
|
||||
# directives contained in it are actually available _before_ they are used.
|
||||
# Statically compiled modules (those listed by `httpd -l') do not need
|
||||
# to be loaded here.
|
||||
#
|
||||
# Example:
|
||||
# LoadModule foo_module modules/mod_foo.so
|
||||
#
|
||||
#LoadModule mpm_event_module modules/mod_mpm_event.so
|
||||
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
|
||||
#LoadModule mpm_worker_module modules/mod_mpm_worker.so
|
||||
LoadModule authn_file_module modules/mod_authn_file.so
|
||||
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
|
||||
#LoadModule authn_anon_module modules/mod_authn_anon.so
|
||||
#LoadModule authn_dbd_module modules/mod_authn_dbd.so
|
||||
#LoadModule authn_socache_module modules/mod_authn_socache.so
|
||||
LoadModule authn_core_module modules/mod_authn_core.so
|
||||
LoadModule authz_host_module modules/mod_authz_host.so
|
||||
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
|
||||
LoadModule authz_user_module modules/mod_authz_user.so
|
||||
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
|
||||
#LoadModule authz_owner_module modules/mod_authz_owner.so
|
||||
#LoadModule authz_dbd_module modules/mod_authz_dbd.so
|
||||
LoadModule authz_core_module modules/mod_authz_core.so
|
||||
LoadModule access_compat_module modules/mod_access_compat.so
|
||||
LoadModule auth_basic_module modules/mod_auth_basic.so
|
||||
#LoadModule auth_form_module modules/mod_auth_form.so
|
||||
#LoadModule auth_digest_module modules/mod_auth_digest.so
|
||||
#LoadModule allowmethods_module modules/mod_allowmethods.so
|
||||
#LoadModule file_cache_module modules/mod_file_cache.so
|
||||
#LoadModule cache_module modules/mod_cache.so
|
||||
#LoadModule cache_disk_module modules/mod_cache_disk.so
|
||||
#LoadModule cache_socache_module modules/mod_cache_socache.so
|
||||
#LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
|
||||
#LoadModule socache_dbm_module modules/mod_socache_dbm.so
|
||||
#LoadModule socache_memcache_module modules/mod_socache_memcache.so
|
||||
#LoadModule socache_redis_module modules/mod_socache_redis.so
|
||||
#LoadModule watchdog_module modules/mod_watchdog.so
|
||||
#LoadModule macro_module modules/mod_macro.so
|
||||
#LoadModule dbd_module modules/mod_dbd.so
|
||||
#LoadModule dumpio_module modules/mod_dumpio.so
|
||||
#LoadModule echo_module modules/mod_echo.so
|
||||
#LoadModule buffer_module modules/mod_buffer.so
|
||||
#LoadModule data_module modules/mod_data.so
|
||||
#LoadModule ratelimit_module modules/mod_ratelimit.so
|
||||
LoadModule reqtimeout_module modules/mod_reqtimeout.so
|
||||
#LoadModule ext_filter_module modules/mod_ext_filter.so
|
||||
#LoadModule request_module modules/mod_request.so
|
||||
#LoadModule include_module modules/mod_include.so
|
||||
LoadModule filter_module modules/mod_filter.so
|
||||
#LoadModule reflector_module modules/mod_reflector.so
|
||||
#LoadModule substitute_module modules/mod_substitute.so
|
||||
#LoadModule sed_module modules/mod_sed.so
|
||||
#LoadModule charset_lite_module modules/mod_charset_lite.so
|
||||
#LoadModule deflate_module modules/mod_deflate.so
|
||||
LoadModule mime_module modules/mod_mime.so
|
||||
LoadModule log_config_module modules/mod_log_config.so
|
||||
#LoadModule log_debug_module modules/mod_log_debug.so
|
||||
#LoadModule log_forensic_module modules/mod_log_forensic.so
|
||||
#LoadModule logio_module modules/mod_logio.so
|
||||
LoadModule env_module modules/mod_env.so
|
||||
#LoadModule mime_magic_module modules/mod_mime_magic.so
|
||||
#LoadModule expires_module modules/mod_expires.so
|
||||
LoadModule headers_module modules/mod_headers.so
|
||||
#LoadModule usertrack_module modules/mod_usertrack.so
|
||||
#LoadModule unique_id_module modules/mod_unique_id.so
|
||||
LoadModule setenvif_module modules/mod_setenvif.so
|
||||
LoadModule version_module modules/mod_version.so
|
||||
#LoadModule remoteip_module modules/mod_remoteip.so
|
||||
#LoadModule session_module modules/mod_session.so
|
||||
#LoadModule session_cookie_module modules/mod_session_cookie.so
|
||||
#LoadModule session_crypto_module modules/mod_session_crypto.so
|
||||
#LoadModule session_dbd_module modules/mod_session_dbd.so
|
||||
#LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
|
||||
#LoadModule slotmem_plain_module modules/mod_slotmem_plain.so
|
||||
#LoadModule dialup_module modules/mod_dialup.so
|
||||
#LoadModule http2_module modules/mod_http2.so
|
||||
LoadModule unixd_module modules/mod_unixd.so
|
||||
#LoadModule heartbeat_module modules/mod_heartbeat.so
|
||||
#LoadModule heartmonitor_module modules/mod_heartmonitor.so
|
||||
LoadModule status_module modules/mod_status.so
|
||||
LoadModule autoindex_module modules/mod_autoindex.so
|
||||
#LoadModule asis_module modules/mod_asis.so
|
||||
#LoadModule info_module modules/mod_info.so
|
||||
#LoadModule suexec_module modules/mod_suexec.so
|
||||
<IfModule !mpm_prefork_module>
|
||||
#LoadModule cgid_module modules/mod_cgid.so
|
||||
</IfModule>
|
||||
<IfModule mpm_prefork_module>
|
||||
#LoadModule cgi_module modules/mod_cgi.so
|
||||
</IfModule>
|
||||
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
|
||||
#LoadModule negotiation_module modules/mod_negotiation.so
|
||||
LoadModule dir_module modules/mod_dir.so
|
||||
#LoadModule actions_module modules/mod_actions.so
|
||||
#LoadModule speling_module modules/mod_speling.so
|
||||
#LoadModule userdir_module modules/mod_userdir.so
|
||||
LoadModule alias_module modules/mod_alias.so
|
||||
LoadModule rewrite_module modules/mod_rewrite.so
|
||||
|
||||
LoadModule negotiation_module modules/mod_negotiation.so
|
||||
|
||||
<IfModule unixd_module>
|
||||
#
|
||||
# If you wish httpd to run as a different user or group, you must run
|
||||
# httpd as root initially and it will switch.
|
||||
#
|
||||
# User/Group: The name (or #number) of the user/group to run httpd as.
|
||||
# It is usually good practice to create a dedicated user and group for
|
||||
# running httpd, as with most system services.
|
||||
#
|
||||
User apache
|
||||
Group apache
|
||||
|
||||
</IfModule>
|
||||
|
||||
# 'Main' server configuration
|
||||
#
|
||||
# The directives in this section set up the values used by the 'main'
|
||||
# server, which responds to any requests that aren't handled by a
|
||||
# <VirtualHost> definition. These values also provide defaults for
|
||||
# any <VirtualHost> containers you may define later in the file.
|
||||
#
|
||||
# All of these directives may appear inside <VirtualHost> containers,
|
||||
# in which case these default settings will be overridden for the
|
||||
# virtual host being defined.
|
||||
#
|
||||
|
||||
#
|
||||
# ServerAdmin: Your address, where problems with the server should be
|
||||
# e-mailed. This address appears on some server-generated pages, such
|
||||
# as error documents. e.g. admin@your-domain.com
|
||||
#
|
||||
ServerAdmin pongrebio@mastodon.help
|
||||
|
||||
#
|
||||
# Optionally add a line containing the server version and virtual host
|
||||
# name to server-generated pages (internal error documents, FTP directory
|
||||
# listings, mod_status and mod_info output etc., but not CGI generated
|
||||
# documents or custom error documents).
|
||||
# Set to "EMail" to also include a mailto: link to the ServerAdmin.
|
||||
# Set to one of: On | Off | EMail
|
||||
#
|
||||
ServerSignature On
|
||||
|
||||
#
|
||||
# ServerName gives the name and port that the server uses to identify itself.
|
||||
# This can often be determined automatically, but we recommend you specify
|
||||
# it explicitly to prevent problems during startup.
|
||||
#
|
||||
# If your host doesn't have a registered DNS name, enter its IP address here.
|
||||
#
|
||||
ServerName 172.17.0.2:80
|
||||
|
||||
#
|
||||
# Deny access to the entirety of your server's filesystem. You must
|
||||
# explicitly permit access to web content directories in other
|
||||
# <Directory> blocks below.
|
||||
#
|
||||
<Directory />
|
||||
AllowOverride none
|
||||
Require all denied
|
||||
</Directory>
|
||||
|
||||
#
|
||||
# Note that from this point forward you must specifically allow
|
||||
# particular features to be enabled - so if something's not working as
|
||||
# you might expect, make sure that you have specifically enabled it
|
||||
# below.
|
||||
#
|
||||
|
||||
#
|
||||
# DocumentRoot: The directory out of which you will serve your
|
||||
# documents. By default, all requests are taken from this directory, but
|
||||
# symbolic links and aliases may be used to point to other locations.
|
||||
#
|
||||
DocumentRoot "/var/www/localhost/htdocs"
|
||||
<Directory "/var/www/localhost/htdocs">
|
||||
#
|
||||
# Possible values for the Options directive are "None", "All",
|
||||
# or any combination of:
|
||||
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
|
||||
#
|
||||
# Note that "MultiViews" must be named *explicitly* --- "Options All"
|
||||
# doesn't give it to you.
|
||||
#
|
||||
# The Options directive is both complicated and important. Please see
|
||||
# http://httpd.apache.org/docs/2.4/mod/core.html#options
|
||||
# for more information.
|
||||
#
|
||||
Options Indexes FollowSymLinks
|
||||
|
||||
#
|
||||
# AllowOverride controls what directives may be placed in .htaccess files.
|
||||
# It can be "All", "None", or any combination of the keywords:
|
||||
# AllowOverride FileInfo AuthConfig Limit
|
||||
#
|
||||
AllowOverride All
|
||||
|
||||
#
|
||||
# Controls who can get stuff from this server.
|
||||
#
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
#
|
||||
# DirectoryIndex: sets the file that Apache will serve if a directory
|
||||
# is requested.
|
||||
#
|
||||
<IfModule dir_module>
|
||||
DirectoryIndex index.html
|
||||
</IfModule>
|
||||
|
||||
#
|
||||
# The following lines prevent .htaccess and .htpasswd files from being
|
||||
# viewed by Web clients.
|
||||
#
|
||||
<Files ".ht*">
|
||||
Require all denied
|
||||
</Files>
|
||||
|
||||
#
|
||||
# ErrorLog: The location of the error log file.
|
||||
# If you do not specify an ErrorLog directive within a <VirtualHost>
|
||||
# container, error messages relating to that virtual host will be
|
||||
# logged here. If you *do* define an error logfile for a <VirtualHost>
|
||||
# container, that host's errors will be logged there and not here.
|
||||
#
|
||||
ErrorLog logs/error.log
|
||||
|
||||
#
|
||||
# LogLevel: Control the number of messages logged to the error_log.
|
||||
# Possible values include: debug, info, notice, warn, error, crit,
|
||||
# alert, emerg.
|
||||
#
|
||||
LogLevel warn
|
||||
|
||||
<IfModule log_config_module>
|
||||
#
|
||||
# The following directives define some format nicknames for use with
|
||||
# a CustomLog directive (see below).
|
||||
#
|
||||
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
|
||||
LogFormat "%h %l %u %t \"%r\" %>s %b" common
|
||||
|
||||
<IfModule logio_module>
|
||||
# You need to enable mod_logio.c to use %I and %O
|
||||
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
|
||||
</IfModule>
|
||||
|
||||
#
|
||||
# The location and format of the access logfile (Common Logfile Format).
|
||||
# If you do not define any access logfiles within a <VirtualHost>
|
||||
# container, they will be logged here. Contrariwise, if you *do*
|
||||
# define per-<VirtualHost> access logfiles, transactions will be
|
||||
# logged therein and *not* in this file.
|
||||
#
|
||||
#CustomLog logs/access.log common
|
||||
|
||||
#
|
||||
# If you prefer a logfile with access, agent, and referer information
|
||||
# (Combined Logfile Format) you can use the following directive.
|
||||
#
|
||||
CustomLog logs/access.log combined
|
||||
</IfModule>
|
||||
|
||||
<IfModule alias_module>
|
||||
#
|
||||
# Redirect: Allows you to tell clients about documents that used to
|
||||
# exist in your server's namespace, but do not anymore. The client
|
||||
# will make a new request for the document at its new location.
|
||||
# Example:
|
||||
# Redirect permanent /foo http://www.example.com/bar
|
||||
|
||||
#
|
||||
# Alias: Maps web paths into filesystem paths and is used to
|
||||
# access content that does not live under the DocumentRoot.
|
||||
# Example:
|
||||
# Alias /webpath /full/filesystem/path
|
||||
#
|
||||
# If you include a trailing / on /webpath then the server will
|
||||
# require it to be present in the URL. You will also likely
|
||||
# need to provide a <Directory> section to allow access to
|
||||
# the filesystem path.
|
||||
|
||||
#
|
||||
# ScriptAlias: This controls which directories contain server scripts.
|
||||
# ScriptAliases are essentially the same as Aliases, except that
|
||||
# documents in the target directory are treated as applications and
|
||||
# run by the server when requested rather than as documents sent to the
|
||||
# client. The same rules about trailing "/" apply to ScriptAlias
|
||||
# directives as to Alias.
|
||||
#
|
||||
ScriptAlias /cgi-bin/ "/var/www/localhost/cgi-bin/"
|
||||
|
||||
</IfModule>
|
||||
|
||||
<IfModule cgid_module>
|
||||
#
|
||||
# ScriptSock: On threaded servers, designate the path to the UNIX
|
||||
# socket used to communicate with the CGI daemon of mod_cgid.
|
||||
#
|
||||
#Scriptsock cgisock
|
||||
</IfModule>
|
||||
|
||||
#
|
||||
# "/var/www/localhost/cgi-bin" should be changed to whatever your ScriptAliased
|
||||
# CGI directory exists, if you have that configured.
|
||||
#
|
||||
<Directory "/var/www/localhost/cgi-bin">
|
||||
AllowOverride None
|
||||
Options None
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
<IfModule headers_module>
|
||||
#
|
||||
# Avoid passing HTTP_PROXY environment to CGI's on this or any proxied
|
||||
# backend servers which have lingering "httpoxy" defects.
|
||||
# 'Proxy' request header is undefined by the IETF, not listed by IANA
|
||||
#
|
||||
RequestHeader unset Proxy early
|
||||
</IfModule>
|
||||
|
||||
<IfModule mime_module>
|
||||
#
|
||||
# TypesConfig points to the file containing the list of mappings from
|
||||
# filename extension to MIME-type.
|
||||
#
|
||||
TypesConfig /etc/apache2/mime.types
|
||||
|
||||
#
|
||||
# AddType allows you to add to or override the MIME configuration
|
||||
# file specified in TypesConfig for specific file types.
|
||||
#
|
||||
#AddType application/x-gzip .tgz
|
||||
#
|
||||
# AddEncoding allows you to have certain browsers uncompress
|
||||
# information on the fly. Note: Not all browsers support this.
|
||||
#
|
||||
#AddEncoding x-compress .Z
|
||||
#AddEncoding x-gzip .gz .tgz
|
||||
#
|
||||
# If the AddEncoding directives above are commented-out, then you
|
||||
# probably should define those extensions to indicate media types:
|
||||
#
|
||||
AddType application/x-compress .Z
|
||||
AddType application/x-gzip .gz .tgz
|
||||
|
||||
#
|
||||
# AddHandler allows you to map certain file extensions to "handlers":
|
||||
# actions unrelated to filetype. These can be either built into the server
|
||||
# or added with the Action directive (see below)
|
||||
#
|
||||
# To use CGI scripts outside of ScriptAliased directories:
|
||||
# (You will also need to add "ExecCGI" to the "Options" directive.)
|
||||
#
|
||||
#AddHandler cgi-script .cgi
|
||||
|
||||
# For type maps (negotiated resources):
|
||||
#AddHandler type-map var
|
||||
|
||||
#
|
||||
# Filters allow you to process content before it is sent to the client.
|
||||
#
|
||||
# To parse .shtml files for server-side includes (SSI):
|
||||
# (You will also need to add "Includes" to the "Options" directive.)
|
||||
#
|
||||
#AddType text/html .shtml
|
||||
#AddOutputFilter INCLUDES .shtml
|
||||
</IfModule>
|
||||
|
||||
#
|
||||
# The mod_mime_magic module allows the server to use various hints from the
|
||||
# contents of the file itself to determine its type. The MIMEMagicFile
|
||||
# directive tells the module where the hint definitions are located.
|
||||
#
|
||||
<IfModule mime_magic_module>
|
||||
MIMEMagicFile /etc/apache2/magic
|
||||
</IfModule>
|
||||
|
||||
#
|
||||
# Customizable error responses come in three flavors:
|
||||
# 1) plain text 2) local redirects 3) external redirects
|
||||
#
|
||||
# Some examples:
|
||||
#ErrorDocument 500 "The server made a boo boo."
|
||||
#ErrorDocument 404 /missing.html
|
||||
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
|
||||
#ErrorDocument 402 http://www.example.com/subscription_info.html
|
||||
#
|
||||
|
||||
#
|
||||
# MaxRanges: Maximum number of Ranges in a request before
|
||||
# returning the entire resource, or one of the special
|
||||
# values 'default', 'none' or 'unlimited'.
|
||||
# Default setting is to accept 200 Ranges.
|
||||
#MaxRanges unlimited
|
||||
|
||||
#
|
||||
# EnableMMAP and EnableSendfile: On systems that support it,
|
||||
# memory-mapping or the sendfile syscall may be used to deliver
|
||||
# files. This usually improves server performance, but must
|
||||
# be turned off when serving from networked-mounted
|
||||
# filesystems or if support for these functions is otherwise
|
||||
# broken on your system.
|
||||
# Defaults: EnableMMAP On, EnableSendfile Off
|
||||
#
|
||||
#EnableMMAP off
|
||||
#EnableSendfile on
|
||||
|
||||
# Load config files from the config directory "/etc/apache2/conf.d".
|
||||
#
|
||||
#IncludeOptional /etc/apache2/conf.d/*.conf
|
||||
|
||||
Include /etc/apache2/conf.d/default.conf
|
||||
Include /etc/apache2/conf.d/languages.conf
|
||||
Include /etc/apache2/conf.d/mpm.conf
|
||||
Include /etc/apache2/conf.d/php7-module.conf
|
|
@ -1,31 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
cd /root
|
||||
|
||||
mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
|
||||
|
||||
mysqld_safe &
|
||||
|
||||
sleep 5
|
||||
|
||||
gzip -d mastostart_popolato.sql.gz
|
||||
|
||||
mysql -e 'source mastostart_popolato.sql'
|
||||
|
||||
mysql -e 'source create_user.sql'
|
||||
|
||||
rm /var/www/localhost/htdocs/index.html
|
||||
|
||||
git clone https://git.lattuga.net/pongrebio/MastodonStartpage.git
|
||||
|
||||
rsync -av MastodonStartpage/web/ /var/www/localhost/htdocs/
|
||||
|
||||
cp /var/www/localhost/htdocs/mustard/sec/mustard.ini.sample /var/www/localhost/htdocs/mustard/sec/mustard.ini
|
||||
|
||||
chown apache /etc/php7/msmtprc
|
||||
|
||||
chmod go-r /etc/php7/msmtprc
|
||||
|
||||
chown apache /var/log/apache2/
|
||||
|
||||
exit 0
|
Binary file not shown.
|
@ -1,12 +0,0 @@
|
|||
account phpmail
|
||||
host x.x.x
|
||||
port 587
|
||||
tls on
|
||||
auth on
|
||||
user x@x.x
|
||||
password xxx
|
||||
from x@x.x
|
||||
logfile /var/log/apache2/msmtp.log
|
||||
syslog off
|
||||
|
||||
account default : phpmail
|
|
@ -1,21 +0,0 @@
|
|||
# This group is read both both by the client and the server
|
||||
# use it for options that affect everything
|
||||
[client-server]
|
||||
|
||||
[client]
|
||||
default-character-set = utf8mb4
|
||||
|
||||
[mysql]
|
||||
default-character-set = utf8mb4
|
||||
auto-rehash
|
||||
|
||||
# This group is read by the server
|
||||
[mysqld]
|
||||
collation_server = utf8mb4_unicode_ci
|
||||
character_set_server = utf8mb4
|
||||
|
||||
# Disabling symbolic-links is recommended to prevent assorted security risks
|
||||
symbolic-links=0
|
||||
|
||||
# include all files from the config directory
|
||||
!includedir /etc/my.cnf.d
|
File diff suppressed because it is too large
Load diff
|
@ -1,6 +0,0 @@
|
|||
#!/bin/sh
|
||||
BASEDIR=$(dirname "$0")
|
||||
cd "$BASEDIR/MastodonStartpage"
|
||||
git pull
|
||||
cd ..
|
||||
rsync -av --filter "protect mustard/crawler/peers" --filter "protect mustard/sec/mustard.ini" --delete-after MastodonStartpage/web/ /var/www/localhost/htdocs/
|
|
@ -1,36 +0,0 @@
|
|||
anitwitter.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f
|
||||
anitwitter.moe 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f
|
||||
babymetal.party 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f
|
||||
baraag.net 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f
|
||||
bsd.moe 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f https://mastodon.bida.im/@Ca_Gi/101270762003908554
|
||||
ediot.social 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f
|
||||
freespeechextremist.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f
|
||||
freespeech.firedragonstudios.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f https://mastodon.bida.im/@Ca_Gi/101344114624456297
|
||||
freezepeach.xyz 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f
|
||||
gorf.club 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f
|
||||
gs.smuglo.li 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f
|
||||
humblr.social 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 0 f f https://mastodon.bida.im/@cirku17/101399587014096355
|
||||
ika.moe 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f
|
||||
mastodon.starrevolution.org 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f https://a.nom.pl/notice/450131
|
||||
mobile.co 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f https://mastodon.bida.im/@Ca_Gi/101355947506820592
|
||||
neckbeard.xyz 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f Instance "suspended": neckbeard.xyz - anime nazi shit, irony bro admin
|
||||
newjack.city 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f
|
||||
noagendasocial.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 0 f f
|
||||
pawoo.net 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f
|
||||
pl.smuglo.li 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f
|
||||
porntoot.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 0 f f
|
||||
preteengirls.biz 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f
|
||||
quodverum.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f https://mastodon.bida.im/@Ca_Gi/101514801964087604
|
||||
sealion.club 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 0 f f
|
||||
shitposter.club 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 0 f f
|
||||
shitposter.club 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f https://mastodon.bida.im/@Ca_Gi/101270762003908554
|
||||
social.au2pb.net 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f
|
||||
social.heldscal.la 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f
|
||||
social.imirhil.fr 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f
|
||||
social.quodverum.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f Razz"isti
|
||||
social.targaryen.house 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 0 f f
|
||||
switter.at 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 0 f f https://mastodon.bida.im/@jops/101404791975700441
|
||||
toot.love 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 0 f f
|
||||
unsafe.space 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f
|
||||
woofer.alfter.us 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f
|
||||
wrongthink.net 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f
|
|
@ -1,158 +0,0 @@
|
|||
2.distsn.org 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Spam
|
||||
2hu.club 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Pedo – Loli
|
||||
anitwitter.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
anitwitter.moe 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Bad Moderation
|
||||
ap.torlipen.net 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
ap.uwu.st 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Harassment or abuse
|
||||
babymetal.party 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
baraag.net 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Pedo – Loli
|
||||
beehub.org 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 0 f f
|
||||
blob.cat 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
bodybuilding.im 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
bofa.lol 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
bsd.moe 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
carnal-gabhub.protohype.net 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
civiq.social 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
cofe.moe 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Bad Moderation
|
||||
comm.network 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
community.halle-leaks.de 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
community.highlandarrow.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
counter.social 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Bad Moderation
|
||||
cryzed.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 0 f f
|
||||
cyzed.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
daffodil-11.org 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f "Malicious" 'site'
|
||||
dev.civiq.social 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
develop.gab.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
dickshow.social 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Bad Moderation
|
||||
djitter.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
ediot.social 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 0 f f Fascism – Hatespeech
|
||||
ediot.socialsilence 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
ekrem.develop.gab.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
exited.eu 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
explosion.party 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Conspiracy theories
|
||||
fedichive.tk 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
feminism.lgbt 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Pedo – Loli
|
||||
freefedifollowers.ga 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
freehold.earth 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Bad Moderation
|
||||
freespeechextremist.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
freespeech.firedragonstudios.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
freespeech.host 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
freevoice.space 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 0 f f Fascism – Hatespeech
|
||||
freezepeach.xyz 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
gab.ai 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
gabble.xyz 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
gab.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
gabfed.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
gab.io 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
gab.polaris-1.work 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
gab.protohype.net 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
gab.sleek.eu 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
gameliberty.club 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Pedo – Loli
|
||||
gasthe.lgbt 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
gnusocial.no 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
goldandblack.xyz 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
gorf.club 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 0 f f Fascism – Hatespeech
|
||||
gorf.club 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
gs.archae.me 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
gs.kawa-kun.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
gs.mon5t3r.info 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
gs.smuglo.li 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
hakui.club 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
homura.space 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Harassment or abuse
|
||||
ika.moe 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Bad Moderation
|
||||
impeccable.social 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
inditoot.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Bad Moderation
|
||||
jabb.in 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Conspiracy theories
|
||||
juche.town 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
karolat.press 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
kawaiistu.moe 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
kawen.space 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
kazvam.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
kipper.im 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Bad Moderation
|
||||
kiwifarms.cc 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 0 f f
|
||||
kneegrows.top 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
kowai.youkai.town 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Pedo – Loli
|
||||
kyot.me 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Bad Moderation
|
||||
liberdon.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
libertarianism.club 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
libre.tube 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 0 f f
|
||||
loli.estate 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Pedo – Loli
|
||||
lolis.world 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
manx.social 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Bad Moderation
|
||||
mastodon.loliandstuff.moe 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Pedo – Loli
|
||||
mastodon.starrevolution.org 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
mast.wholemars.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 0 f f
|
||||
melalandia.tk 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
me.nooruul.xyz 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
mobile.co 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
neckbeard.xyz 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
neenster.org 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
newjack.city 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Spam
|
||||
niu.moe 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Bad Moderation
|
||||
noagendasocial.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 0 f f Fascism – Hatespeech
|
||||
not-develop.gab.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
not.phrack.fyi 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Conspiracy theories
|
||||
npf.mlpol.net 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
pawoo.net 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Pedo – Loli
|
||||
pleroma.cucked.me 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
pleroma.rareome.ga 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Malicious site
|
||||
pleroma.soykaf.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
pleroma.wolfie.pw 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
pleroma.yorha.club 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Harassment or abuse
|
||||
pleville.net 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 0 f f
|
||||
pl.smuglo.li 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
porntoot.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Pedo – Loli
|
||||
preteen.biz 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Pedo – Loli
|
||||
preteengirls.bi 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Pedo – Loli
|
||||
preteengirls.biz 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Pedo – Loli
|
||||
pridelands.io 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
qoto.org 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
quey.org 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 0 f f
|
||||
quitter.pw 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
quodverum.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
rainbowdash.net 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
rapefeminists.network 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
sealion.club 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
shitasstits.life 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Pedo – Loli
|
||||
shitposter.club 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
social.allthefallen.ninja 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Pedo – Loli
|
||||
social.au2pb.net 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
social.guizzyordi.info 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
social.heldscal.la 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
social.hidamari.blue 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 0 f f
|
||||
social.homunyan.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 0 f f
|
||||
social.i2p.rocks 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
social.imirhil.fr 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
social.louisoft01.moe 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Conspiracy theories
|
||||
social.lucci.xyz 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Conspiracy theories
|
||||
social.quodverum.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
social.raptorengineering.io 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Advertisement
|
||||
social.sunshinegardens.org 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Harassment or abuse
|
||||
social.super-niche.club 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Pedo – Loli
|
||||
social.targaryen.house 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 0 f f Fascism – Hatespeech
|
||||
social.wiuwiu.de 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Bad Moderation
|
||||
socnet.supes.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Bad Moderation
|
||||
spinster.dev 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
spinster.xyz 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
sunshinegardens.org 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Harassment or abuse
|
||||
thechad.zone 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
the.hedgehoghunter.club 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 0 f f
|
||||
toot.love 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Bad Moderation
|
||||
unsafe.space 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 0 f f Fascism – Hatespeech
|
||||
vampire.estate 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Pedo – Loli
|
||||
video.halle-leaks.de 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f
|
||||
vipgirlfriend.xxx 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Unflagged porn
|
||||
voluntaryism.club 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
wagesofsinisdeath.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
waifu.social 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
warc.space 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 0 f f
|
||||
weeaboo.space 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Pedo – Loli
|
||||
weedis.life 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 0 f f
|
||||
wogan.im 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
woofer.alfter.us 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
wrongthink.net 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 0 f f Fascism – Hatespeech
|
||||
wxw.moe 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Pedo – Loli
|
||||
yiff.rocks 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Harassment or abuse
|
||||
youkai.town 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Pedo – Loli
|
||||
zerohack.xyz 2019-12-11 18:44:05.111111 2019-12-11 18:44:06.710862 1 f f Fascism – Hatespeech
|
||||
social.quodverum.com 2019-12-11 18:44:05.111111 2019-12-11 18:44:05.111111 1 f f Razz"isti
|
|
@ -1,2 +0,0 @@
|
|||
blacklist_bida.txt
|
||||
blacklist_cagi.txt
|
|
@ -1,5 +0,0 @@
|
|||
mastodon.bida.im
|
||||
mastodon.cisti.org
|
||||
nebbia.fail
|
||||
stereodon.social
|
||||
snapj.saja.freemyip.com
|
|
@ -1,119 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or 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 program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
MASTHOME='/var/lib/mastodon'
|
||||
MASTENVFP="$MASTHOME/live/.env.production"
|
||||
DOMBLOCKSFP="$MASTHOME/live/public/domain_blocks.txt"
|
||||
|
||||
HELP="SINTASSI
|
||||
mastblocksdump.sh [opzioni]
|
||||
DESCRIZIONE
|
||||
Questo script rimedia all'attuale mancanza, in mastodon, di un endpoint
|
||||
dell'API che ritorni una lista dei domini bloccati da un'istanza in un
|
||||
formato univoco e parsabile. Legge i dati necessari alla connessione al
|
||||
db di mastodon dal file di configurazione di mastodon, per default
|
||||
\"$MASTENVFP\"
|
||||
poi esegue tramite psql una query sulla tabella domain_blocks
|
||||
e ne salva i risultati in un file di testo, per default
|
||||
\"$DOMBLOCKSFP\"
|
||||
che sarà accessibile da \"https://[dominio]/domain_blocks.txt\".
|
||||
È pensato per essere eseguito periodicamente da un cron job, come
|
||||
utente mastodon oppure root oppure altro utente che abbia accesso in
|
||||
lettura al file di configurazione di mastodon e in scrittura a quello
|
||||
in cui scrivere la lista delle istanze bloccate.
|
||||
OPZIONI
|
||||
-H, --home
|
||||
Definisce la home di mastodon (per default \"$MASTHOME\")
|
||||
e di conseguenza il percorso del suo file di configurazione
|
||||
(per default \"$MASTENVFP\") e del file
|
||||
in cui scrivere la lista delle istanze bloccate (per default
|
||||
\"$DOMBLOCKSFP\").
|
||||
È comunque possibile specificare individualmente il percorso
|
||||
del file di configurazione di mastodon e di quello in cui scrivere
|
||||
la lista delle istanze bloccate con le due opzioni che seguono.
|
||||
-e, --envfp
|
||||
Definisce il percorso del file di configurazione di mastodon in uso.
|
||||
-b, --blocksfp
|
||||
Definisce il percorso del file in cui scrivere la lista delle istanze
|
||||
bloccate.
|
||||
-h, --help
|
||||
Mostra questo aiuto ed esce."
|
||||
|
||||
args=("$@")
|
||||
i=0
|
||||
while [ $i -lt ${#args[@]} ]; do
|
||||
if [ "${args[$i]:0:1}" == "-" ]; then
|
||||
case "${args[$i]}" in
|
||||
"-H" | "--home" )
|
||||
if [ -z "${args[$i+1]}" ]; then
|
||||
echo "L'opzione \"${args[$i]}\" richiede un parametro (usa \"-h\" per l'aiuto)."
|
||||
exit 1
|
||||
else
|
||||
((i++))
|
||||
MASTHOME=$(echo "${args[$i]}" | sed -e 's/\/$//')
|
||||
MASTENVFP="$MASTHOME/live/.env.production"
|
||||
DOMBLOCKSFP="$MASTHOME/live/public/domain_blocks.txt"
|
||||
fi
|
||||
;;
|
||||
"-e" | "--envfp" )
|
||||
if [ -z "${args[$i+1]}" ]; then
|
||||
echo "L'opzione \"${args[$i]}\" richiede un parametro (usa \"-h\" per l'aiuto)."
|
||||
exit 1
|
||||
else
|
||||
((i++))
|
||||
MASTENVFP="${args[$i]}"
|
||||
fi
|
||||
;;
|
||||
"-b" | "--blocksfp" )
|
||||
if [ -z "${args[$i+1]}" ]; then
|
||||
echo "L'opzione \"${args[$i]}\" richiede un parametro (usa \"-h\" per l'aiuto)."
|
||||
exit 1
|
||||
else
|
||||
((i++))
|
||||
DOMBLOCKSFP="${args[$i]}"
|
||||
fi
|
||||
;;
|
||||
"-h" | "--help" )
|
||||
echo "$HELP"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "\"${args[$i]}\": opzione sconosciuta (usa \"-h\" per l'aiuto)."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
else
|
||||
echo "\"${args[$i]}\": opzione sconosciuta (usa \"-h\" per l'aiuto)."
|
||||
exit 1
|
||||
fi
|
||||
((i++))
|
||||
done
|
||||
|
||||
[ ! -e "$MASTENVFP" ] && echo "\"$MASTENVFP\" non esiste, muoio (usa \"-h\" per l'aiuto)." && exit 1
|
||||
[ ! -f "$MASTENVFP" ] && echo "\"$MASTENVFP\" non è un file, muoio (usa \"-h\" per l'aiuto)." && exit 1
|
||||
[ ! -r "$MASTENVFP" ] && echo "\"$MASTENVFP\" non è leggibile, muoio (usa \"-h\" per l'aiuto)." && exit 1
|
||||
|
||||
DB_HOST=`grep 'DB_HOST' "$MASTENVFP"|sed -e 's/[^=]*=//'`
|
||||
DB_PORT=`grep 'DB_PORT' "$MASTENVFP"|sed -e 's/[^=]*=//'`
|
||||
DB_NAME=`grep 'DB_NAME' "$MASTENVFP"|sed -e 's/[^=]*=//'`
|
||||
DB_USER=`grep 'DB_USER' "$MASTENVFP"|sed -e 's/[^=]*=//'`
|
||||
DB_PASS=`grep 'DB_PASS' "$MASTENVFP"|sed -e 's/[^=]*=//'`
|
||||
|
||||
touch "$DOMBLOCKSFP" 2>/dev/null
|
||||
[ ! $? -eq 0 ] && echo "Non posso creare/modificare il file \"$DOMBLOCKSFP\", muoio (usa \"-h\" per l'aiuto)." && exit 1
|
||||
|
||||
echo "# generato $(date -u)" > "$DOMBLOCKSFP"
|
||||
echo "# formato di output: dominio bloccato[tab]data creazione blocco[tab]data ultima modifica blocco[tab]tipo blocco[tab]rifiuto media[tab]rifiuto reports[tab]commento pubblico" >> "$DOMBLOCKSFP"
|
||||
echo "# \"tipo blocco\" può essere 0=silenziato, 1=sospeso, 2=nessuno (solo, eventualmente, rifiuto media e reports)" >> "$DOMBLOCKSFP"
|
||||
|
||||
PGPASSWORD="$DB_PASS" psql -h "$DB_HOST" -p "$DB_PORT" -d "$DB_NAME" -U "$DB_USER" -c 'SELECT domain, created_at, updated_at, severity, reject_media, reject_reports, public_comment FROM domain_blocks' -A -t -F $'\t' >> "$DOMBLOCKSFP"
|
|
@ -1,168 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or 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 program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
MASTHOME='/var/lib/mastodon'
|
||||
MASTENVFP="$MASTHOME/live/.env.production"
|
||||
SISTERSFP="istanzesorelle"
|
||||
INTERACTIVE=0
|
||||
|
||||
HELP="SINTASSI
|
||||
mastblocksmerge.sh [opzioni]
|
||||
DESCRIZIONE
|
||||
Questo script integra i dati di una o più blocklist esterne nella
|
||||
tabella domain_blocks di mastodon.
|
||||
Legge i domini delle istanze di cui recuperare la blocklist da un file,
|
||||
per default \"$SISTERSP\" (formato del file: un dominio per riga),
|
||||
prova a recuperare ciascuna blocklist da
|
||||
https://[dominio]/domain_blocks.txt, costruisce dalle liste recuperate
|
||||
un\'unica lista senza duplicati, si collega al db di mastodon e scrive
|
||||
nella tabella domain_blocks i dati relativi alle istanze bloccate che
|
||||
non sono già presenti nella tabella stessa.
|
||||
Per la connessione al db di mastodon legge i dati necessari dal file
|
||||
di configurazione di mastodon, per default
|
||||
\"$MASTENVFP\"
|
||||
È pensato per essere eseguito periodicamente da un cron job, come
|
||||
utente mastodon oppure root oppure altro utente che abbia accesso in
|
||||
lettura al file di configurazione di mastodon.
|
||||
OPZIONI
|
||||
-H, --home
|
||||
Definisce la home di mastodon (per default \"$MASTHOME\")
|
||||
e di conseguenza il percorso del suo file di configurazione
|
||||
(per default \"$MASTENVFP\").
|
||||
È comunque possibile specificare individualmente il percorso
|
||||
del file di configurazione di mastodon con l\'opzione che segue.
|
||||
-e, --envfp
|
||||
Definisce il percorso del file di configurazione di mastodon in uso.
|
||||
-s, --sistersfp
|
||||
Definisce il percorso del file da cui leggere la lista delle istanze
|
||||
sorelle.
|
||||
-i, --interactive
|
||||
Modalità interattiva: se vengono nelle blocklist vengono trovate
|
||||
istanze ancora non presenti nel database di mastodon, viene chiesto
|
||||
per ciascuna se aggiungerla o meno.
|
||||
-h, --help
|
||||
Mostra questo aiuto ed esce."
|
||||
|
||||
args=("$@")
|
||||
i=0
|
||||
while [ $i -lt ${#args[@]} ]; do
|
||||
if [ "${args[$i]:0:1}" == "-" ]; then
|
||||
case "${args[$i]}" in
|
||||
"-H" | "--home" )
|
||||
if [ -z "${args[$i+1]}" ]; then
|
||||
echo "L'opzione \"${args[$i]}\" richiede un parametro (usa \"-h\" per l'aiuto)."
|
||||
exit 1
|
||||
else
|
||||
((i++))
|
||||
MASTHOME=$(echo "${args[$i]}" | sed -e 's/\/$//')
|
||||
MASTENVFP="$MASTHOME/live/.env.production"
|
||||
fi
|
||||
;;
|
||||
"-e" | "--envfp" )
|
||||
if [ -z "${args[$i+1]}" ]; then
|
||||
echo "L'opzione \"${args[$i]}\" richiede un parametro (usa \"-h\" per l'aiuto)."
|
||||
exit 1
|
||||
else
|
||||
((i++))
|
||||
MASTENVFP="${args[$i]}"
|
||||
fi
|
||||
;;
|
||||
"-s" | "--sistersfp" )
|
||||
if [ -z "${args[$i+1]}" ]; then
|
||||
echo "L'opzione \"${args[$i]}\" richiede un parametro (usa \"-h\" per l'aiuto)."
|
||||
exit 1
|
||||
else
|
||||
((i++))
|
||||
SISTERSFP="${args[$i]}"
|
||||
fi
|
||||
;;
|
||||
"-i" | "--interactive" )
|
||||
INTERACTIVE=1
|
||||
;;
|
||||
"-h" | "--help" )
|
||||
echo "$HELP"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "\"${args[$i]}\": opzione sconosciuta (usa \"-h\" per l'aiuto)."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
else
|
||||
echo "\"${args[$i]}\": opzione sconosciuta (usa \"-h\" per l'aiuto)."
|
||||
exit 1
|
||||
fi
|
||||
((i++))
|
||||
done
|
||||
|
||||
[ ! -e "$MASTENVFP" ] && echo "\"$MASTENVFP\" non esiste, muoio (usa \"-h\" per l'aiuto)." && exit 1
|
||||
[ ! -f "$MASTENVFP" ] && echo "\"$MASTENVFP\" non è un file, muoio (usa \"-h\" per l'aiuto)." && exit 1
|
||||
[ ! -r "$MASTENVFP" ] && echo "\"$MASTENVFP\" non è leggibile, muoio (usa \"-h\" per l'aiuto)." && exit 1
|
||||
|
||||
[ ! -e "$SISTERSFP" ] && echo "\"$SISTERSFP\" non esiste, muoio (usa \"-h\" per l'aiuto)." && exit 1
|
||||
[ ! -f "$SISTERSFP" ] && echo "\"$SISTERSFP\" non è un file, muoio (usa \"-h\" per l'aiuto)." && exit 1
|
||||
[ ! -r "$SISTERSFP" ] && echo "\"$SISTERSFP\" non è leggibile, muoio (usa \"-h\" per l'aiuto)." && exit 1
|
||||
|
||||
DB_HOST=`grep 'DB_HOST' "$MASTENVFP"|sed -e 's/[^=]*=//'`
|
||||
DB_PORT=`grep 'DB_PORT' "$MASTENVFP"|sed -e 's/[^=]*=//'`
|
||||
DB_NAME=`grep 'DB_NAME' "$MASTENVFP"|sed -e 's/[^=]*=//'`
|
||||
DB_USER=`grep 'DB_USER' "$MASTENVFP"|sed -e 's/[^=]*=//'`
|
||||
DB_PASS=`grep 'DB_PASS' "$MASTENVFP"|sed -e 's/[^=]*=//'`
|
||||
|
||||
IFS=$'\n'
|
||||
|
||||
for sisdom in $(grep -P '^[^#]+[^\s]+' "$SISTERSFP"); do
|
||||
blocks="$(curl -s "https://$sisdom/domain_blocks.txt" | grep -P '^[^#]+[^\s]+')"
|
||||
# blocks=$(cat "$sisdom" | grep -P '^[^#]+[^\s]+')
|
||||
for line in $blocks; do
|
||||
echo "$allblocks"|grep -F "$line" &>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
dom=$(echo "$line" | sed -e 's/\t.*//' -e 's/\./\\./g')
|
||||
echo "$allblocks" | grep -P "^$dom\t" &>/dev/null
|
||||
[ $? -ne 0 ] && allblocks+="$line$IFS"
|
||||
fi
|
||||
done
|
||||
done
|
||||
allblocks=$(echo "$allblocks" | head -n -1 | sort)
|
||||
|
||||
blocks=$(PGPASSWORD="$DB_PASS" psql -h "$DB_HOST" -p "$DB_PORT" -d "$DB_NAME" -U "$DB_USER" -c 'SELECT domain, updated_at, severity, public_comment FROM domain_blocks' -A -t -F $'\t')
|
||||
|
||||
i=0
|
||||
for line in $allblocks; do
|
||||
dom=$(echo "$line" | sed -e 's/\t.*//' -e 's/\./\\./g')
|
||||
echo "$blocks" | grep -P "^$dom\t" &>/dev/null
|
||||
[ $? -ne 0 ] && newblocks+="$line$IFS" && ((i++))
|
||||
done
|
||||
newblocks=$(echo "$newblocks" | head -n -1 | sort)
|
||||
|
||||
[ $i -eq 0 ] && echo "Non ho trovato nessuna nuova istanza bloccata." && exit 0
|
||||
|
||||
echo "Ho trovato $i istanza/e bloccata da aggiungere."
|
||||
|
||||
if [ $INTERACTIVE -eq 1 ]; then
|
||||
for line in $newblocks; do
|
||||
echo "$line"
|
||||
ask=1
|
||||
while [ $ask -eq 1 ]; do
|
||||
read -p "Vuoi aggiungere questa istanza alla tabella delle istanze bloccate? [S/n] " inp
|
||||
echo "$inp" | grep -P '^[sSnN]{0,1}$' &>/dev/null
|
||||
[ $? -eq 0 ] && ask=0
|
||||
done
|
||||
if [ "$inp" == "" ] || [ "$inp" == "s" ] || [ "$inp" == "S" ]; then
|
||||
buf+="$line$IFS"
|
||||
fi
|
||||
done
|
||||
newblocks=$(echo "$buf" | head -n -1)
|
||||
fi
|
||||
|
||||
echo "$newblocks" | PGPASSWORD="$DB_PASS" psql -h "$DB_HOST" -p "$DB_PORT" -d "$DB_NAME" -U "$DB_USER" -A -t -c "COPY domain_blocks ( domain, created_at, updated_at, severity, reject_media, reject_reports, public_comment ) FROM STDIN WITH ( FORMAT text, DELIMITER ' ' )"
|
|
@ -1,237 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or 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 program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
MASTHOME='/var/lib/mastodon'
|
||||
MASTENVFP="$MASTHOME/live/.env.production"
|
||||
SISTERSFP="istanzesorelle"
|
||||
LOCAL=0
|
||||
INTERACTIVE=0
|
||||
|
||||
HELP="SINTASSI
|
||||
mastblocksmerge.sh [opzioni]
|
||||
DESCRIZIONE
|
||||
Questo script integra i dati di una o più blocklist esterne nella
|
||||
tabella domain_blocks di mastodon.
|
||||
Legge i domini delle istanze di cui recuperare la blocklist da un file
|
||||
di inizializzazione, per default \"$SISTERSP\" (formato del file:
|
||||
un dominio per riga), prova a recuperare ciascuna blocklist da
|
||||
https://[dominio]/domain_blocks.txt, costruisce dalle liste recuperate
|
||||
un\'unica lista senza duplicati, si collega al db di mastodon e scrive
|
||||
nella tabella domain_blocks i dati relativi alle istanze bloccate che
|
||||
non sono già presenti nella tabella stessa.
|
||||
Per la connessione al db di mastodon legge i dati necessari dal file
|
||||
di configurazione di mastodon, per default
|
||||
\"$MASTENVFP\"
|
||||
È pensato per essere eseguito periodicamente da un cron job, come
|
||||
utente mastodon oppure root oppure altro utente che abbia accesso in
|
||||
lettura al file di configurazione di mastodon.
|
||||
OPZIONI
|
||||
-H, --home
|
||||
Definisce la home di mastodon (per default \"$MASTHOME\")
|
||||
e di conseguenza il percorso del suo file di configurazione
|
||||
(per default \"$MASTENVFP\").
|
||||
È comunque possibile specificare individualmente il percorso
|
||||
del file di configurazione di mastodon con l\'opzione che segue.
|
||||
-e, --envfp
|
||||
Definisce il percorso del file di configurazione di mastodon in uso.
|
||||
-s, --sistersfp
|
||||
Definisce il percorso del file di inizializzazione da cui leggere
|
||||
la lista dei domini delle istanze sorelle.
|
||||
-l, --local
|
||||
Interpreta il file di inizializzazione come lista di file locali
|
||||
contenenti blacklist (formato: un file per riga).
|
||||
-i, --interactive
|
||||
Modalità interattiva: se vengono nelle blocklist vengono trovate
|
||||
istanze ancora non presenti nel database di mastodon, viene chiesto
|
||||
per ciascuna se aggiungerla o meno.
|
||||
-h, --help
|
||||
Mostra questo aiuto ed esce."
|
||||
|
||||
args=("$@")
|
||||
i=0
|
||||
while [ $i -lt ${#args[@]} ]; do
|
||||
if [ "${args[$i]:0:1}" == "-" ]; then
|
||||
case "${args[$i]}" in
|
||||
"-H" | "--home" )
|
||||
if [ -z "${args[$i+1]}" ]; then
|
||||
echo "L'opzione \"${args[$i]}\" richiede un parametro (usa \"-h\" per l'aiuto)."
|
||||
exit 1
|
||||
else
|
||||
((i++))
|
||||
MASTHOME=$(echo "${args[$i]}" | sed -e 's/\/$//')
|
||||
MASTENVFP="$MASTHOME/live/.env.production"
|
||||
fi
|
||||
;;
|
||||
"-e" | "--envfp" )
|
||||
if [ -z "${args[$i+1]}" ]; then
|
||||
echo "L'opzione \"${args[$i]}\" richiede un parametro (usa \"-h\" per l'aiuto)."
|
||||
exit 1
|
||||
else
|
||||
((i++))
|
||||
MASTENVFP="${args[$i]}"
|
||||
fi
|
||||
;;
|
||||
"-s" | "--sistersfp" )
|
||||
if [ -z "${args[$i+1]}" ]; then
|
||||
echo "L'opzione \"${args[$i]}\" richiede un parametro (usa \"-h\" per l'aiuto)."
|
||||
exit 1
|
||||
else
|
||||
((i++))
|
||||
SISTERSFP="${args[$i]}"
|
||||
fi
|
||||
;;
|
||||
"-l" | "--local" )
|
||||
LOCAL=1
|
||||
;;
|
||||
"-i" | "--interactive" )
|
||||
INTERACTIVE=1
|
||||
;;
|
||||
"-h" | "--help" )
|
||||
echo "$HELP"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "\"${args[$i]}\": opzione sconosciuta (usa \"-h\" per l'aiuto)."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
else
|
||||
echo "\"${args[$i]}\": opzione sconosciuta (usa \"-h\" per l'aiuto)."
|
||||
exit 1
|
||||
fi
|
||||
((i++))
|
||||
done
|
||||
|
||||
[ ! -e "$MASTENVFP" ] && echo "\"$MASTENVFP\" non esiste, muoio (usa \"-h\" per l'aiuto)." && exit 1
|
||||
[ ! -f "$MASTENVFP" ] && echo "\"$MASTENVFP\" non è un file, muoio (usa \"-h\" per l'aiuto)." && exit 1
|
||||
[ ! -r "$MASTENVFP" ] && echo "\"$MASTENVFP\" non è leggibile, muoio (usa \"-h\" per l'aiuto)." && exit 1
|
||||
|
||||
[ ! -e "$SISTERSFP" ] && echo "\"$SISTERSFP\" non esiste, muoio (usa \"-h\" per l'aiuto)." && exit 1
|
||||
[ ! -f "$SISTERSFP" ] && echo "\"$SISTERSFP\" non è un file, muoio (usa \"-h\" per l'aiuto)." && exit 1
|
||||
[ ! -r "$SISTERSFP" ] && echo "\"$SISTERSFP\" non è leggibile, muoio (usa \"-h\" per l'aiuto)." && exit 1
|
||||
|
||||
DB_HOST=`grep 'DB_HOST' "$MASTENVFP"|sed -e 's/[^=]*=//'`
|
||||
DB_PORT=`grep 'DB_PORT' "$MASTENVFP"|sed -e 's/[^=]*=//'`
|
||||
DB_NAME=`grep 'DB_NAME' "$MASTENVFP"|sed -e 's/[^=]*=//'`
|
||||
DB_USER=`grep 'DB_USER' "$MASTENVFP"|sed -e 's/[^=]*=//'`
|
||||
DB_PASS=`grep 'DB_PASS' "$MASTENVFP"|sed -e 's/[^=]*=//'`
|
||||
|
||||
IFS=$'\n'
|
||||
|
||||
function decode {
|
||||
#dominio
|
||||
record[0]=$(echo "$1" | sed -e 's/\t.*//')
|
||||
#data creazione
|
||||
record[1]=$(echo "$1" | sed -e 's/^[^\t]*\t\([^\t]*\).*/\1/')
|
||||
#data ultima modifica
|
||||
record[2]=$(echo "$1" | sed -e 's/^[^\t]*\t[^\t]*\t\([^\t]*\).*/\1/')
|
||||
#tipo di blocco
|
||||
record[3]=$(echo "$1" | sed -e 's/^[^\t]*\t[^\t]*\t[^\t]*\t\([^\t]*\).*/\1/')
|
||||
#rifiuto media
|
||||
record[4]=$(echo "$1" | sed -e 's/^[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t\([^\t]*\).*/\1/')
|
||||
#rifiuto reports
|
||||
record[5]=$(echo "$1" | sed -e 's/^[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t\([^\t]*\).*/\1/')
|
||||
#commento pubblico
|
||||
record[6]=$(echo "$1" | sed -e 's/^[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t[^\t]*\t\([^\t]*\).*/\1/')
|
||||
if [ "${record[4]}" == "f" ]; then
|
||||
record[4]="No"
|
||||
elif [ "${record[4]}" == "t" ]; then
|
||||
record[4]="Si"
|
||||
fi
|
||||
if [ "${record[5]}" == "f" ]; then
|
||||
record[5]="No"
|
||||
elif [ "${record[5]}" == "t" ]; then
|
||||
record[5]="Si"
|
||||
fi
|
||||
if [ "${record[3]}" == "0" ]; then
|
||||
record[3]="Silenziata"
|
||||
elif [ "${record[3]}" == "1" ]; then
|
||||
record[3]="Sospesa"
|
||||
elif [ "${record[3]}" == "2" ]; then
|
||||
record[3]="Nessuno"
|
||||
fi
|
||||
}
|
||||
|
||||
for sisdom in $(grep -P '^[^#]+[^\s]+' "$SISTERSFP"); do
|
||||
if [ $LOCAL -eq 0 ]; then
|
||||
blocks+="$(curl --connect-timeout 3 -s "https://$sisdom/domain_blocks.txt" | grep -P '^[^#]+[^\s]+')$IFS"
|
||||
else
|
||||
blocks+="$(cat "$sisdom" | grep -P '^[^#]+[^\s]+')$IFS"
|
||||
fi
|
||||
done
|
||||
blocks=$(echo "$blocks" | head -n -1 | sort -u)
|
||||
echo "$blocks"
|
||||
echo "~~~~~~~~~~~~~~~~~~~~"
|
||||
okblocks=''
|
||||
for line in $blocks; do
|
||||
dom=$(echo "$line" | sed -e 's/\t.*//' -e 's/\./\\./g')
|
||||
echo "$okblocks" | grep -P "^$dom\t"
|
||||
if [ $? -ne 0 ]; then
|
||||
entries=$(echo "$blocks" | grep -P "^$dom\t")
|
||||
howmany=$(echo "$entries" | wc -l)
|
||||
if [ $howmany -gt 1 ]; then
|
||||
if [ $INTERACTIVE -eq 1 ]; then
|
||||
i=0
|
||||
for entry in $entries; do
|
||||
((i++))
|
||||
echo "$i: $entry"
|
||||
done
|
||||
read
|
||||
else
|
||||
# qui ci vorrebbe codice "intelligente" che sceglie la entry più recente, ma per ora così
|
||||
okblocks+="$line$IFS"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
||||
okblocks=$(echo "$okblocks" | head -n -1 | sort)
|
||||
echo "$okblocks"
|
||||
echo "~~~~~~~~~~~~~~~~~~~~"
|
||||
|
||||
exit
|
||||
|
||||
|
||||
|
||||
|
||||
blocks=$(PGPASSWORD="$DB_PASS" psql -h "$DB_HOST" -p "$DB_PORT" -d "$DB_NAME" -U "$DB_USER" -c 'SELECT domain, updated_at, severity, public_comment FROM domain_blocks' -A -t -F $'\t')
|
||||
|
||||
i=0
|
||||
for line in $allblocks; do
|
||||
dom=$(echo "$line" | sed -e 's/\t.*//' -e 's/\./\\./g')
|
||||
echo "$blocks" | grep -P "^$dom\t" &>/dev/null
|
||||
[ $? -ne 0 ] && newblocks+="$line$IFS" && ((i++))
|
||||
done
|
||||
newblocks=$(echo "$newblocks" | head -n -1 | sort)
|
||||
|
||||
[ $i -eq 0 ] && echo "Non ho trovato nessuna nuova istanza bloccata." && exit 0
|
||||
|
||||
echo "Ho trovato $i istanza/e bloccata da aggiungere."
|
||||
|
||||
if [ $INTERACTIVE -eq 1 ]; then
|
||||
for line in $newblocks; do
|
||||
decode "$line"
|
||||
echo "Dominio: ${record[0]}; Data creaz.: ${record[1]}; Data ult. mod.: ${record[2]}; Tipo blocco: ${record[3]}; Rifiuto media: ${record[4]}; Rifiuto reports: ${record[5]}; Commento pub.: ${record[6]}"
|
||||
ask=1
|
||||
while [ $ask -eq 1 ]; do
|
||||
read -p "Vuoi aggiungere questa istanza alla tabella delle istanze bloccate? [S/n] " inp
|
||||
echo "$inp" | grep -P '^[sSnN]{0,1}$' &>/dev/null
|
||||
[ $? -eq 0 ] && ask=0
|
||||
done
|
||||
if [ "$inp" == "" ] || [ "$inp" == "s" ] || [ "$inp" == "S" ]; then
|
||||
buf+="$line$IFS"
|
||||
fi
|
||||
done
|
||||
newblocks=$(echo "$buf" | head -n -1)
|
||||
fi
|
||||
|
||||
echo "$newblocks" | PGPASSWORD="$DB_PASS" psql -h "$DB_HOST" -p "$DB_PORT" -d "$DB_NAME" -U "$DB_USER" -A -t -c "COPY domain_blocks ( domain, created_at, updated_at, severity, reject_media, reject_reports, public_comment ) FROM STDIN WITH ( FORMAT text, DELIMITER ' ' )"
|
|
@ -1,38 +0,0 @@
|
|||
<?php
|
||||
|
||||
define('N',"\n");
|
||||
|
||||
$conffp='../.env.production';
|
||||
|
||||
$conf=array(
|
||||
'DB_HOST'=>null,
|
||||
'DB_PORT'=>null,
|
||||
'DB_NAME'=>null,
|
||||
'DB_USER'=>null,
|
||||
'DB_PASS'=>null
|
||||
);
|
||||
|
||||
$confa=file($conffp,FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
|
||||
|
||||
foreach ($confa as $line) {
|
||||
if (preg_match('/^([A-Z_]+)=(.*)$/',$line,$buf)===1 && array_key_exists($buf[1],$conf))
|
||||
$conf[$buf[1]]=$buf[2];
|
||||
}
|
||||
|
||||
$dbconn=pg_connect('host='.$conf['DB_HOST'].' port='.$conf['DB_PORT'].' dbname='.$conf['DB_NAME'].' user='.$conf['DB_USER'].' password='.$conf['DB_PASS'])
|
||||
or die('Connessione fallita: '.pg_last_error());
|
||||
|
||||
$res=pg_query('SELECT domain, created_at, updated_at, severity, reject_media, reject_reports, public_comment FROM domain_blocks')
|
||||
or die('Query fallita: '.pg_last_error());
|
||||
|
||||
while ($row=pg_fetch_assoc($res))
|
||||
$domblocks[]=$row;
|
||||
|
||||
pg_free_result($res);
|
||||
pg_close($dbconn);
|
||||
|
||||
echo(json_encode($domblocks));
|
||||
|
||||
exit(0);
|
||||
|
||||
?>
|
Loading…
Reference in a new issue