Instala ArchiSteamFarm (ASF) en tu servidor casero

Supongo que no es necesario explicar con mucho detalle que es ASF ya que eso lo pueden encontrar en su web oficial, en este caso me voy a centrar en como instalarlo en Ubuntu ya que en su sitio web los pasos están muy generalizados y en ingles.

Para hacer un mini resumen, ASF es un software desarrollado en C# para farmear cromos de cuentas Steam similar a IdleMaster, pero a diferencia de este ASF puede gestionar varias cuentas a la vez, entre tantas otras funciones, y además se ejecuta en modo consola por lo que no es necesario correrlo en un entorno grafico.

Antes de comenzar vamos a dividir este tutorial en dos grandes partes ya que una de ellas se hará en el servidor y la otra se realizara en nuestra PC personal. En el caso de nuestra PC vamos a utilizar las herramientas previamente descargadas e instaladas en la primera parte del tutorial y ellas son PuTTY y FileZilla client.




Instalación en el servidor


Para instalarlo primero deberemos instalar un par de librerías con el siguiente comando:
sudo apt install ca-certificates libc6 libgcc-10-dev libicu-dev libgssapi-krb5-2 libstdc++6 zlib1g libssl-dev libssl-dev
Debido a que las claves se guardan en formato texto plano en los archivos de configuración, para darle una capa de seguridad deberíamos crear un usuario diferente. Pero este tutorial esta enfocado para ser lo mas simple posible, así que posiblemente esta parte la realice como un paso opcional mas adelante.

No voy a explicar mucho como funciona el árbol de directorios de Linux, pero básicamente todos los archivos que manejamos se guardan en el directorio /home/"usuario" (/home/xiiq en este ejemplo). 
Así que vamos a crear dentro de nuestro directorio de usuario una carpeta llamada ASF.

NOTA: Linux es sensible a las mayúsculas y minúsculas, por lo que si creamos una carpeta Asf, ASF, aSF, a diferencia de Windows, estas serán 3 carpetas diferentes en lugar de la misma. Se recomienda siempre usar minúsculas para evitar problemas.

Para crear la carpeta usamos el comando mkdir (make directory): 
mkdir asf
Ahora procedemos a movernos a esa carpeta recién creada con:
cd asf
Como observamos en la imagen, el directorio de la consola ha cambiado.


Ahora lo que debemos hacer es descargar en esta carpeta la ultima versión de ASF, desde el navegador de nuestra PC iremos al siguiente enlace para descargar la versión mas reciente: 
A continuación elegimos la opción ASF-linux-x64.zip, hacemos clic derecho y copiamos el enlace.


Ahora en la consola de PuTTY escribiremos el comando wget, haremos un espacio y a continuación pegaremos el enlace que copiamos en la consola (clic derecho sobre la pantalla de PuTTY). Debería quedarnos algo como el siguiente comando.

NOTA: Tambien puedes copiar este comando si resulta muy complicado ya que al momento de hacer este tutorial puede que no sea la ultima versión, pero ASF puede auto actualizarse.
wget https://github.com/JustArchiNET/ArchiSteamFarm/releases/download/5.4.13.4/ASF-linux-x64.zip
Una vez realizado esto vamos a comprobar si el archivo se descargo tipeando en consola
ls -l
Deberemos visualizar algo muy similar a esto:


Ahora vamos a descomprimir el archivo sobre la carpeta que hemos creado:
unzip ASF-linux-x64.zip
Usando nuevamente el comando ls -l vamos a comprobar el directorio descomprimido. Debería verse muy similar a esto:


Hasta aquí ASF esta "instalado" pero para funcionar nos hacen falta unos pasos mas.



Buscar nuestro SteamID64 


Si no lo conocemos hay muchas paginas que permiten mostrarlo con solo poner el enlace de nuestro perfil o bien poner el nombre de nuestro ID personalizado. Como por ejemplo: https://www.steamidfinder.com/

Una vez que coloquemos nuestro perfil o id en ese pagina deberemos copiar solo el que dice steamID64 (decimal)





Configurar ASF


Ahora desde nuestra PC personal donde estamos ejecutando PuTTY volveremos al paso donde copiábamos el enlace de la ultima versión de ASF, pero en este caso la descargaremos en nuestra PC. Solo lo necesitamos para crear los archivos de configuración, así que una vez que los tengamos listos podremos borrar todo esto.
Una vez extraído el archivo comprimido vamos a abrir con nuestro navegador el archivo ConfigGenerator.html.


Con esto se nos abrirá una herramienta grafica para poder configurar nuestras cuentas steam. Para ello elegimos ASF y presionamos el botón Toggle advanced settings
En SteamOwnerID pondremos el ID que obtuvimos del paso anterior, con esto le decimos al programa quien es el usuario principal de nuestra granja de cromos.
En OptimizationMode dejamos por defecto la opción MaxPerformance, solo si nuestro servidor tiene muy poca memoria (1 GB o menos) elegimos la opción MinMemoryUsage. En CurrentCulture pondremos es-ES para cambiar el idioma por defecto. Dejamos todas las otras opciones como están y presionamos sobre Download. Esto nos creara un archivo llamdo ASF.json.


Creando usuarios o bots en ASF


Ahora recargarnos la ventana de nuestro navegador para borrar lo que hemos escrito pero esta vez elegimos Bot. A continuación completamos los campos con nuestras credenciales de Steam.
En Name pondremos un nombre para identificar esa instancia, se recomienda un nombre simple y en minúscula y sin símbolos (bot01, yo, mibot, cuenta01, etc.) para que nos resulte mas fácil llamar esta instancia en un futuro. Tambien hay que aclarar que este será el nombre del archivo que descargaremos. 
En Enabled marcamos con el visto ✅ para activar esta instancia de los contrario nunca iniciara.

Ahora como presionamos el botón Toggle advanced settings para mostrar mas opciones útiles.

Opcional: Si la cuenta que estamos creando es un bot o cuenta secundaria, en la opción 
SteamUserPermissions pondremos el SteamID64 de nuestra cuenta principal, en la lista desplegable a continuación elegimos Master y para finalizar presionamos Add.
Con esto le diremos a nuestra cuenta bot cual es la cuenta maestra principal ya que solo obedecerá a esta, de lo contrario no obedecerá ningún comando y nos va a rechazar cualquier oferta de intercambio que le enviemos.

Opcional 2: En CustomGamePlayedWhileFarming podremos poner un mensaje personalizado que nuestra cuenta mostrara en lugar de mostrar el nombre de los juegos que estamos farmeando. El farmeo puede resultar muy molesto para nuestra lista amigos ya que vamos a "spamearles" constantemente diferentes juegos. Tambien es útil por si tenemos un juego "guiño guiño" que no queremos que vean que estamos jugando. 



Dejamos todo lo demás como esta y presionamos Download.



Subir los archivos creados al servidor

Para subir nuestros archivos recién creados vamos a utilizar el software FileZilla, como se muestra en la imagen presionamos sobre el botón Gestor de servidores que esta justo abajo de Archivo. Elegimos Nuevo sitio y a continuación completamos los datos de nuestro servidor como IP, puerto, usuario, contraseña, y lo mas importante claro, el protocolo SFTP.
Una vez completado esto presionamos sobre Aceptar.


Ahora presionamos nuevamente el botón Gestor de servidores y elegimos el servidor que hemos configurado.

NOTA: Es posible que la primera vez que nos pregunte si queremos guardar las contraseñas, para mas practicidad le pondremos Si. Tambien puede preguntar si queremos usar la llave publica del servidor, le ponemos Si tambien.

En FileZilla tendremos dos arboles de carpetas, la de la izquierda será nuestra PC y la de la derecha será el servidor. Lo que debemos hacer ahora es subir los archivos .json creados a la carpeta config dentro de ASF. Simplemente navegamos el directorio del servidor y nos vamos a la carpeta asf/config, luego elegimos los archivos en la PC y usamos la opción Subir con el botón derecho del mouse.





Primer Inicio de ASF


Para arrancar ASF debemos ir a la carpeta de instalación del mismo y ejecutar el archivo ArchiSteamFarm. Para ejecutar un script o ejecutable en linux simplemente agregamos un ./ antes del nombre. 
Para ejecutar ASF hay que estar en la carpeta asf, para los mas nuevos que no están muy hábiles en el uso de linux, simplemente escribimos cd y Enter, con esto vamos a volver al directorio home de nuestro usuario. Luego escribimos cd asf para ingresar a la carpeta donde esta instalado. Ahora si ejecutamos ASF:
./ArchiSteamFarm

La primera vez que iniciemos ASF nos pedirá el código de Steam Guard, si tenemos Guard activado con e-mail deberemos tener dicho e-mail abierto para ingresar el código que nos enviara. 
Si tenemos la aplicación móvil y el Steam Mobile Guard activado tendremos la opción de escribir el código guard generado o aun mas fácil, podremos usar el nuevo sistema de validación de login donde solo tendremos que aceptar la sesión en el telefono (eligiendo la opción recordar sesión claro), y en la consola deberemos escribir "y".
Deberemos repetir este paso por cada cuenta que hemos configurado.


Una vez que ASF a iniciado del todo y ya no nos pide mas códigos, procedemos a cerrarlo presionado Ctrl + C para así volver a la consola linux.



Ejecutar ASF como un servicio automático

Una vez que ASF esta funcionando y ya no necesitamos agregar mas instancias ni mas configuración procederemos a convertirlo en servicio.
Para ello ASF ya incluye un archivo llamado ArchiSteamFarm@.service el cual esta destinado a servirnos como plantilla para crear uno personalizado. Si lo abrimos podremos ver comentarios asi como enlaces a documentación. 
Pero a fines prácticos vamos a crear uno de cero poniendo lo que yo creo que es mas que suficiente.
Para ello vamos a pegar el siguiente comando:
sudo nano /etc/systemd/system/ArchiSteamFarm.service
Y en su interior vamos a pegar lo siguiente cambiando los valores que necesitemos antes de guardarlo.
En User y Group pondremos nuestro usuario de linux. Básicamente reemplazamos todo lo que esta en rojo por nuestro usuario. Tambien podemos usar el comando pwd mostrar la ruta completa de nuestra carpeta por si queremos copiarla y reemplazarla en ExecStart=.
Alias nos ayudara a llamar al proceso por un apodo mas corto en vez de escribir "ArchiSteamFarm".

[Install]
WantedBy=multi-user.target
Alias=asf.service

[Service]
#EnvironmentFile=-/etc/asf/%i
ExecStart=/home/xiiq/asf/ArchiSteamFarm --no-restart --process-required --service
Restart=on-success
RestartSec=3s
SyslogIdentifier=xiiq
User=xiiq
Group=xiiq

[Unit]
After=network.target
Description=ArchiSteamFarm Service


Para guardar los cambios presionamos Ctrl + O, y Enter para confirmar la escritura. Para salir del editor Ctrl + X.

Ahora para poder inicializar el servicio debemos recargar el servicio SystemD:
sudo systemctl daemon-reload
Habilitamos ahora el servicio de ASF:
sudo systemctl enable ArchiSteamFarm.service
Y ahora si podremos iniciarlo:
sudo systemctl start ArchiSteamFarm.service
Para comprobar si el servicio esta funcionando poder usar status:
sudo systemctl status asf
Gracias al parámetro alias ya no será necesario escribir ArchiSteamFarm a la hora de consultar el estado o reiniciar el servicio solo bastara con reemplazarlo con asf (...status asf / restart asf / stop asf).



Opcional: Ahora que usamos ASF en un servidor y no en nuestra PC personal ya no podremos ver la consola de forma constante. Pero siempre podremos verla en tiempo real usando el comando (asumiendo que estamos situados sobre el directorio /home/"usuario"/) :
cat ./asf/log.txt
El archivo log.txt se borra y sobre-escribe cada vez que iniciamos el servicio ASF.




Habilitando la interfaz web


ArchiSteamFarm cuenta con una interfaz web (IPC) que permite gestionar de manera grafica todo. El problema es que solo acepta conexiones localhost por defecto, es decir, solo acepta conexiones desde la PC donde se esta ejecutando. Pero como estamos usando un servidor y accediendo desde otra PC necesitamos habilitar el inicio de sesión remoto.


Lo primero que haremos es poner una contraseña al servicio IPC editando el archivo ASF.json, agregamos el campo "IPCPasword" si no existe, colocamos una contraseña entre comillas también.
nano /asf/config/ASF.json

Guardamos los cambios con Ctrl + O, Enter, y cerramos el editor con Ctrl + X.


Ahora necesitamos crear un archivo llamado IPC.config en el directorio asf/config, lo hacemos con el siguiente comando:
nano /asf/config/IPC.config
En su interior pegamos esto:
{
    "Kestrel": {
            "Endpoints": {
                    "HTTP": {
                            "Url": "http://*:1242"

                    }
            },
    "KnownNetworks": [
        "10.0.0.0/8",
        "192.168.0.0/16"
            ]
    }
}
Nuevamente guardamos los cambios con Ctrl + OEnter, y cerramos el editor con Ctrl + X.
Aunque no es necesario en la mayoría de los casos, necesitamos reiniciar el servicio ASF, usamos: 
sudo systemctl restart asf

Explicación: El parámetro http://*:1242 nos permitirá ingresar a la interfaz web desde cualquier IP, pero no podremos iniciar sesión. Por eso en KnownNetworks colocamos el rango de IP 192.168.0.0 que nos permitirá entrar desde cualquier dispositivo desde nuestra LAN ya sea que la IP de nuestro Router sea 192.168.1.1 o 192.168.0.1.
La IP 10.0.0.0 nos permitirá entrar de manera externa a nuestro servidor si tenemos una VPN instalada en nuestro servidor.

Ahora para entrar a nuestro servidor solo necesitamos ingresar la IP del mismo, dos puntos, y el puerto 1242 (host:1242) en la barra de navegación de nuestro navegador. Escribimos nuestra contraseña y listo!









Felicidades, ahora estas listo para farmear cromos y gestionar cd-keys de forma automática y automatizada!



"Este post esta dedicado a la comunidad gamer de FOG (Free Original Games)"


Comentarios

Entradas populares de este blog

Configura tu servidor casero

Como crear tu propio servidor casero

Instala Twitch-Channel-Points-Miner-v2 en tu Servidor

Acerca de..