El siguiente es el procedimiento de instalación del servidor fdroid. Ejecute todos los comandos con el usuario de Debian, use sudo donde sea necesario
INSTALACIÓN DE F-DROID
apt-get install software-properties-common
add-apt-repository "http://deb.debian.org/debian buster-backports main"
apt update
apt-get install fdroidserver/buster-backports
mkdir ~/android-sdk-linux
cd ~/android-sdk-linux
wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip
echo "87f6dcf41d4e642e37ba03cb2e387a542aa0bd73cb689a9e7152aad40a6e7a08 commandlinetools-linux-6858069_latest.zip" | sha256sum -c
commandlinetools-linux-6858069_latest.zip: OK
unzip commandlinetools-linux-6858069_latest.zip
export ANDROID_HOME="$HOME/android-sdk-linux"
./cmdline-tools/bin/sdkmanager --sdk_root="$ANDROID_HOME" platform-tools "build-tools;30.0.3"
echo export ANDROID_HOME=$ANDROID_HOME >> .bashrc
CONFIGURACIÓN DE F-DROID REPO CON NGINX
sudo apt-get install nginx
sudo mkdir /usr/share/nginx/www
sudo mkdir /usr/share/nginx/www/fdroid
sudo chown -R $USER /usr/share/nginx/www/fdroid
cd /usr/share/nginx/www/fdroid
fdroid init
nano /etc/nginx/sites-enabled/default
(Haz lo siguiente):
cambió el directorio raíz agregando la siguiente línea:
root /usr/share/nginx/www;
Eliminar o comentar /var/www/html
sudo service ngnix restart
cd /usr/share/nginx/www/fdroid
Ahora coloque sus archivos apk en el directorio repo
cp /path/to/*.apk /usr/share/nginx/www/fdroid/repo/
fdroid update --create-metadata
fdroid update
adduser android
Password set: android
nano /usr/share/nginx/www/fdroid/config.yml
(añadir siguiente línea)
serverwebroot:
android@localhost:/usr/share/nginx/www/fdroid
PASOS DE INSTALACIÓN Y CONFIGURACIÓN DE I2P (INCLUYENDO REGLAS DE IPTABLES E I2P COMO SERVICIO DEL SISTEMA)
INSTALACIÓN I2P:
sudo apt-get update
sudo apt-get install apt-transport-https curl
sudo apt-get install i2p
CONFIGURACIÓN DE IPTABLES PARA I2P:
iptables -I INPUT -p tcp -m tcp --dport 7657 -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 7658 -j ACCEPT
vi /etc/sysctl.conf
(Agregue la siguiente línea al final de sysctl.conf)
net.ipv4.conf.eth0.route_localnet=1
(Guardar y salir)
(Ejecutar los siguientes comandos):
sysctl –p
iptables -t nat -I PREROUTING -p tcp -d 0.0.0.0/0 --dport 7657 -j DNAT --to-destination 127.0.0.1:7657
iptables -t nat -I PREROUTING -p tcp -d 0.0.0.0/0 --dport 7658 -j DNAT --to-destination 127.0.0.1:7658
iptables-save > /etc/iptables.rules
crontab -e
@reboot sudo iptables-restore -n </etc/iptables.rules
CONFIGURAR EL SERVICIO I2P PARA COMENZAR AL REINICIAR:
systemctl enable i2p
systemctl start i2p
Acceso en navegador http://195.15.218.162:7657/config
y haga clic en Administrador de servicios ocultos

Haga clic en Asistente para túneles

Seleccione Server Tunnel y haga clic en siguiente

Seleccione el túnel HTTP y haga clic en siguiente

Escriba cualquier nombre de túnel en nuestro caso "F-DROID"

Escriba host:127.0.0.1, puerto:80

Poner el cheque en Inicie automáticamente el túnel cuando se inicie el enrutador y haga clic en Finalizar

Ahora el túnel estará disponible como se muestra en la imagen de abajo, y el enlace i2p está disponible con el túnel F-Droid como Destino:nkymfwaye5okwsygtihhghvn5ocsxau6ln6dayjmc5rieabeuooq.b32.i2p
Accesible como:
http://nkymfwaye5okwsygtihhghvn5ocsxau6ln6dayjmc5rieabeuooq.b32.i2p/fdroid/repo

CONFIGURAR I2P PARA UTILIZAR EL 90 % DEL ANCHO DE BANDA
Acceso en navegador http://195.15.218.162:7657/config y haga clic en Ancho de banda y seleccione 90% como se muestra a continuación

CONFIGURACIÓN NGINX PARA I2P
Como ya hemos configurado iptables durante la instalación de I2P, ahora solo tenemos que hacer la siguiente configuración en nginx.
cd /etc/nginx/sites-enabled
nano default
comentar "escuchar 80 servidor_predeterminado"; y ”escuchar [::]:80 default_server;” y agregue las siguientes líneas
listen 127.0.0.1:80;
server_name 127.0.0.1;
Guarde y salga y luego reinicie el servicio nginx de la siguiente manera
systemctl restart nginx
MÉTODO DE ACCESO AL REPOSITORIO F-DROID UTILIZANDO LA URL I2P
Descarga e instala F-Droid.apk en tu móvil desde el siguiente enlace
https://f-droid.org/F-Droid.apk
PASO 2:
Dado que estamos utilizando la URL de I2P, para acceder a la URL de i2p, deberá instalar la aplicación invizible pro de la tienda de Google:

Abra la aplicación invizible pro, marque las 3 casillas de verificación y haga clic en iniciar

PASO 3:
Ahora abra la aplicación F-droid instalada en el PASO 1 y vaya a la configuración como se muestra a continuación

Ahora haga clic en repositorios y apague todo si hay algún repositorio abierto

Ahora haga clic en el signo + para agregar sus propios repositorios
En la dirección de repositorios ingrese la siguiente dirección Dirección I2P
http://nkymfwaye5okwsygtihhghvn5ocsxau6ln6dayjmc5rieabeuooq.b32.i2p/fdroid/repo

Encienda el repositorio recién agregado, llevará algún tiempo sincronizar

Ya hemos terminado, podemos descargar nuestros APK e instalarlos en nuestros dispositivos Android.

PROCEDIMIENTO DE CARGA Y ACTUALIZACIÓN DE ARCHIVOS APK A F-DROID REPO
Descarga tus APK en tu sistema local
Conéctese al servidor usando WinSCP como se muestra a continuación



Arrastre y suelte ComboApp (Carpeta(s) de aplicaciones) al directorio de inicio de Debian

Ahora acceda al shell del servidor F-Droid usando SSH con el usuario de Debian como lo hace normalmente y ejecute los siguientes comandos
cd /usr/share/nginx/www/fdroid
cp ~/ComboApp/*.apk repo/
sudo fdroid update –c
sudo fdroid update
Eso es todo. Ahora abra la aplicación de cliente F-Droid en su dispositivo Android y todas las aplicaciones que cargó/actualizó deberían mostrarse allí.

CONFIGURA SSH Y ASEGÚRALO PARA ACEPTAR EL COMANDO FDROID DEPLOY -V
nano /etc/ssh/sshd_config
(Agregue la siguiente línea al final de sshd_config, para que el usuario de Android no pueda usar ssh desde ninguna ubicación remota)
AllowUsers [email protected] debian
(guardar y salir)
service sshd restart
fdroid deploy –v
CONFIGURAR LA SEGURIDAD HABITUAL DEL SISTEMA FAIL2BAN PARA PROTEGER EL SERVIDOR
apt install fail2ban -y
vi /etc/fail2ban/jail.d/jail-debian.local
[sshd]
port = 22
maxretry = 3
service fail2ban restart
CONFIGURE AUTOMATIC SECURITY UPDATES
sudo apt install unattended-upgrades
nano /etc/apt/apt.conf.d/50unattended-upgrades
(Uncomment following lines by removing forward slashes)
"origin=Debian,codename=${distro_codename}-updates";
"origin=Debian,codename=${distro_codename},label=Debian";
"origin=Debian,codename=${distro_codename},label=Debian-Security";
ESTABLECER NOMBRE DE HOST I2P FDROID.DEV.I2P
vi /etc/hostname
(reemplace el nombre de host existente con el siguiente)
fdroid.dev.i2p
(guardar y salir)
Nano /etc/hosts
(añadir siguiente línea)
127.0.0.1 fdroid.dev.i2p
RECOMENDACIONES DE SEGURIDAD, MANTENIMIENTO DEL SERVIDOR Y RESPALDOS :
Aunque ya he auditado y aplicado todos los parches/arreglos de seguridad, etc. y nuestro servidor ahora es completamente seguro, pero a continuación se presentan algunas recomendaciones útiles
– La clave privada existente puede cambiarse en una etapa posterior
– La copia de seguridad externa/remota debe configurarse para los datos/aplicaciones, etc.
– Se tomará una instantánea semanal del VPS a través del proveedor de alojamiento.
-Se debe realizar una copia de seguridad de cualquier archivo de configuración antes de realizar cambios en él, como cp abc.conf a abc.conf-backup:se puede realizar una verificación de estado del servidor cada 3 o 4 meses solo para asegurarse de que todo funciona bien y el servidor goza de buena salud