Ir al contenido principal

Ralsina.Me — El sitio web de Roberto Alsina

Owning a Pet Server, in 2022

Introducción

El pén­du­lo más len­to de la tec­no­lo­gía es el que se mue­ve en­tre la cen­tra­li­za­ción y lo dis­tri­bui­do. To­ma años o dé­ca­das pa­ra os­ci­la­r. Por eso al­gu­na vez tu­vi­mos com­pu­ta­do­ras con ter­mi­na­les bo­ba­s, y des­pués com­pu­ta­do­ras per­so­na­le­s, que fui­mos con­vir­tien­do en ter­mi­na­les de in­ter­ne­t, que es adon­de es­ta­mos aho­ra.

Tal vez pa­rez­ca que no se va a mo­ver de ahí, pe­ro así se sen­tía tam­bién las ve­ces an­te­rio­res. Tal vez os­ci­le, tal vez no, quién sa­be, no soy fu­tu­ró­lo­go, pe­ro yo lo voy a mo­ver un po­qui­to, pa­ra mí, en un área es­pe­cí­fi­ca: no es­toy con­ten­to con que mis da­tos vi­van prin­ci­pal­men­te en gran­jas de ser­vers que tie­nen due­ños que no son yo.

Así que en vez de te­ner mis da­tos vi­vien­do en un ser­vi­dor "ga­na­do" en una gran­ja de ser­vi­do­res, aho­ra vi­ven prin­ci­pal­men­te en un ser­vi­dor mas­co­ta, en ca­sa.

Les pre­sen­to a ... pi­nk­y.

Foto de una pequeña compu de plástico blanco

Pi­nky no te va a asom­brar con sus ca­rac­te­rís­ti­ca­s, es tal vez el ser­ver prác­ti­co más len­to po­si­ble.

  • Ras­pbe­rry Pi 3b+, 1GB de RAM
  • tar­je­ta 16­GB SD
  • 2x500­GB HDD (es­pe­ja­do)

Pe­ro es más que su­fi­cien­te pa­ra al­gu­nos ti­pos es­pe­cí­fi­cos de tra­ba­jo que ne­ce­si­to. En es­te do­cu­men­to voy a tra­tar de ex­pli­car por qué los quie­ro ha­ce­r, des­cri­bir­lo­s, ex­pli­car las li­mi­ta­cio­nes y el pro­ce­so que me lle­vó a la de­ci­sión de adop­tar es­ta so­lu­ció­n.

Software

Una de las co­sas más im­por­tan­tes acá es Gi­tea.

Es di­fí­cil exa­ge­rar co­mo cam­bia las co­sas pa­ra un ti­po es­pe­cí­fi­co de usua­rio: Gi­tea ha­ce que te­ner tu ser­vi­dor de git sea fá­cil y ba­ra­to.

¿Y qué? pre­gun­ta­rá al­guno.

Bue­no, un ser­ver git es útil co­mo ba­ckend pa­ra mu­chas co­sas úti­le­s, aún si no te in­te­re­sa ha­cer de­sa­rro­llo de so­ftwa­re (que a mí si me in­te­re­sa).

Pass

Por ejem­plo, su­po­né­te que que­rés ma­ne­jar tus pro­pias pa­sswor­d­s, en vez de con­fiar en un ser­vi­cio de ter­ce­ro­s. Una ma­ne­ra de ha­cer­lo es usar pa­ss que es una im­ple­men­ta­ción open sour­ce so­por­ta­da por ca­si to­dos los bro­w­ser­s, apli­ca­cio­nes de es­cri­to­rio, ter­mi­na­les y que se yo.

Pe­ro si te­nés más de un dis­po­si­ti­vo ... ¿có­mo sin­cro­ni­zás tus pa­sswor­ds en­tre ello­s? Sí, usan­do un ser­ver gi­t.

Chezmoi

Y sí, uso más de una com­pu. Ten­go una en ca­sa, una en la ofi­ci­na, otra pa­ra tra­ba­ja­r, y me es­toy ha­cien­do al­gu­nas ca­se­ras con ras­pbe­rry pis, y quie­ro que al­gu­nas co­sas fun­cio­nen de la mis­ma ma­ne­ra en to­das ella­s.

Chez­moi Es una im­ple­men­ta­ción del con­cep­to de do­tfi­le­s.

Bá­si­ca­men­te le de­cís que ma­ne­ja al­gu­nos de tus ar­chi­vos de con­fi­gu­ra­ció­n, los que se guar­dan ver­sio­na­dos y com­par­ti­dos en­tre tus com­pus usan­do ... si, un ser­ver gi­t.

Me lle­vó un po­co de es­fuer­zo pa­ra de­jar­lo en un es­ta­do usa­ble, pe­ro creo que aho­ra le es­tá agre­gan­do va­lor a mis com­pus.

Mi Sitio

Si, ya sé, muy 2003. Pe­ro bue­no, a mí me sir­ve. Una ubi­ca­ción cen­tral pa­ra:

  • Co­sas que es­cri­bo (co­mo es­ta)
  • Li­bros que leo y co­men­to, via goodrea­ds
  • Vi­deos que ha­go, via you­tu­be

De nue­vo, una de las me­tas es que mis da­tos son míos así que to­das esas lis­tas de li­bro­s, co­men­ta­rios y ca­li­fi­ca­cio­nes y de­más ... ¿Por qué de­be­rían es­tar so­lo en goodrea­d­s? ¿Y si Ama­zon lo cie­rra?

Co­mo pue­do es­cri­bir so­ftwa­re, lo aga­rro to­do y lo pon­go en mi si­tio, y lis­to. Y cual es el lu­gar don­de es­tá to­do eso ... sí, un re­po gi­t, que se buil­dea y de­plo­yea au­to­má­ti­ca­men­te.

Acla­ra­ció­n: mi si­tio es­tá prin­ci­pal­men­te en una VPS que pa­go pa­ra otra co­sa, pe­ro hay un es­pe­jo en ho­me.­ral­si­na.­me que es­tá, efec­ti­va­men­te en pi­nk­y.

Gateway a la VPN de mi oficina / casa

Es­tos ser­vi­cios ne­ce­si­tan ac­ce­der­se des­de al­gu­na par­te. Usan­do unos ge­ne­ro­sos ser­vi­cios gra­tui­tos de fly y [tailsca­le])(http­s://­tailsca­le.­com) mas un po­co de es­fuer­zo de con­fi­gu­ra­ción pue­do, des­de cual­quie­ra de mis com­pus o mi ce­lu­la­r, ac­ce­der a to­dos los de­má­s, no im­por­ta don­de es­tén siem­pre y cuan­do ten­gan al­gún ti­po de co­ne­xión a in­ter­ne­t.

Hardware

¿Por qué ESTE hardware?

Por­que ya lo te­nía.

  • La ras­pbe­rry jun­ta­ba tie­rra des­de pro­yec­tos an­te­rio­res.
  • Dos HDD de 500­GB que me re­ga­la­ron o de no­te­books vie­ja­s.

Tu­ve que com­prar 2 ca­bles US­B-S­ATA (mas o me­nos 1000 pe­so­s) y un ca­ble mi­cro­-usb mas lin­do (200 pe­so­s) por­que era lin­do.

Performance

¿Es len­to, pe­ro ... es len­to?

La ras­pbe­rry pi 3b+ tie­ne 4 co­res, así que pue­de eje­cu­tar gi­tea, un web ser­ver y al­gu­nas otras co­sas sin pro­ble­ma.

Tam­bién es USB 2.0, así que el ac­ce­so a dis­co es ... len­ti­to.

Por otro la­do, la ma­yor par­te del tiem­po ac­ce­do a co­sas chi­cas (un git pu­ll es muy efi­cien­te) o por un en­la­ce len­to (30M­bp­s) así que el cue­llo de bo­te­lla ca­si nun­ca va a ser el dis­co.

Una co­sa es­pe­cí­fi­ca que no tie­ne sen­ti­do en es­te ser­ver es es­pe­ja­do por RAI­D, por­que el te­ner que ha­cer los wri­tes dos ve­ces lo ha­ría to­do más len­to.

So­lu­ció­n: apa­go uno de los dis­cos (a­sí no se gas­ta) y lo pren­do a la no­che pa­ra ba­cku­pear el ser­ve­r.

Adi­cio­nal­men­te una vez por se­ma­na sa­co el dis­co se­cun­da­rio y lo co­pio offsi­te.

Electricidad

A to­do lo que da, mi co­si­to USB pa­ra me­dir el con­su­mo que com­pré por un dó­lar (no le creo mu­cho) di­ce que pue­de lle­gar a usar 1.1A a 5v así que en pro­me­dio es­tá usan­do al­go co­mo 4W.

Con mi bo­le­ta de EDE­NO­R, eso es apro­xi­ma­da­men­te 10 cen­ta­vos de dó­lar al me­s.

La Carcaza

Aga­rré una car­ca­za "s­lee­ve" pa­ra ras­pbe­rr­y, 2 car­ca­zas "s­lee­ve" pa­ra dis­cos de 2.5, las pe­go­teé con pa­ra­le­le­pí­pe­do­s, im­pri­mí to­do en la im­pre­so­ra 3D más ba­ra­ta que pue­de com­prar el di­ne­ro. Salió bár­ba­ro.

Co­mo es una Pi 3 y no una Pi 4 so­por­ta cooling pa­si­vo sin pro­ble­ma­s. Las car­ca­zas de los HDD los im­pri­mí a 50% in­fi­ll pa­ra que amor­ti­güen un po­co el rui­do. Se es­cu­cha a ve­ces un cli­ck de los dis­co­s, pe­ro es bá­si­ca­men­te si­len­cio­so.

Tam­bién es chi­quiti­to, mas o me­nos 10­cm en ca­da di­men­sió­n.

Conclusión

Lle­va un mes an­dan­do (sin la car­ca­za, eso es nue­vo) sin pro­ble­ma­s. Tie­ne up­da­tes au­to­má­ti­cos de so­ftwa­re pa­ra to­do, y si se lle­ga a rom­per al­go no pa­sa na­da, pue­do es­tar días sin el ser­ve­r.

En re­su­men, lo ca­li­fi­co co­mo un éxi­to ro­tun­do.

Lo que Ando Haciendo

Este post es una lista de "proyec­tos" en los que es­toy me­tien­do mano en es­tos tiem­pos. En otras épocas hu­biera si­do una lista de proyec­tos open source pero hoy en día es al­go bas­tante más di­ver­so.

NINGU­NA de las cosas que van a ver a con­tin­uación es un proyec­to "se­ri­o" o us­able para al­gún ser hu­mano que no sea yo (y a ve­ces ni es­o).

Compu Artesanal

Con­vertí una rasp­ber­ry pi 3 (o 4, aho­ra que sé que an­da) en una com­pu al­l-in-one, con una pan­talla de 8.8 pul­gadas con res­olu­cion 1920x480 (sí, es to­do una com­bi­nación bas­tante ridícu­la)

¿Para qué?

  • Porque quiero apren­der a dis­eñar ob­je­tos fun­cionales.
  • Porque quiero ten­er una com­pu low-end para pro­bar si soft­ware que es­cri­bo fun­ciona con "poco" hard­ware.
  • Porque quiero una com­pu para no mul­ti­taskear. Quiero sen­tarme a es­cribir y es­cribir, o a pro­gra­mar y pro­gra­mar, y no saltar de una cosa a otra.
  • Es el primer es­calón ha­cia hac­erme una note­book casera

¿Que tal viene?

¡Está bási­ca­mente ter­mi­nada! Po­dría de­jar­la co­mo es­tá y de­cir "lis­to", ex­cep­to que al­gu­nas de las partes de la car­caza no son ide­ales, y otras es­tán hechas de dos o tres partes pe­gadas cuan­do de­berían ser una so­la.

¿Fun­ciona? Oh sí.

Features

  • Lin­da pan­talla que les ju­ro es us­able siem­pre y cuan­do la pon­gas jus­to mas al­lá del tecla­do.
  • Un so­lo ca­ble (que se vea des­de el frente) ... in­clu­so tiene una batería, se ban­ca un par de ho­ras des­ench­u­fa­da.
  • Soft­ware con­fig­u­ra­do a me­di­da para el form fac­tor inusu­al.

Lo que me ll­e­va al se­gun­do proyec­to ...

Software configurado para pantallas raras/malas

De­spués de var­ios meses de NO ten­er com­pu en casa me rendí y ha­bil­ité una Thinkpad T430, que es un fier­ro, pero ...

La pan­talla es muy mala. 1384x768. ¡Tiene casi la mis­ma can­ti­dad de pix­els que la pan­talla ridícu­la de mi com­pu arte­sanal!

Así que con DOS com­puta­do­ras con pan­tallas lim­i­tadas de­cidí hac­er al­go al re­spec­to: ele­gir y us­ar soft­ware que no des­perdi­cia tan­to es­pa­cio en pan­talla.

Es­tas son al­gu­nas de las elec­ciones, de­spués de pro­bar lit­eral­mente do­ce­nas de al­ter­na­ti­vas para ca­da cosa.

  • Desk­top: Qtile (con al­gu­na con­fig­u­ración enci­ma)
  • Ter­mi­nal: st (con var­ios parch­es para scroll­back, clip­board y otras cosas)
  • Browser: Qute­brows­er (chrome an­da igual pero des­perdi­cia MUCHA PAN­TALLA)

A su vez tratar de no usar Chrome implica ... donde están mis passwords? Así que estoy migrando a pass ... parece estar andando bien, pero todavía no traté de usarlo en el celular.

A su vez eso me llevó a ...

Software que creo que nadie usa, pero debieran!

Sabés cuan­tas cosas salen si buscás "ter­mi­nal" en Arch Lin­ux? In­cluyen­do los pa­que­tes del AU­R? CIEN­TOS. Y probé una frac­ción grande de el­las.

En par­tic­u­lar me en­con­tré con al­gunos pro­gra­mas que son joy­i­tas que nun­ca había oí­do nom­brar.

  • tab-rs un mul­ti­­plex­er con un so­­lo short­­­cut! de he­­cho ar­mé un set­up bas­­tante ex­­traño usán­­do­­lo pero que me gus­­ta mu­­cho, que merece su propia de­scrip­­ción.

  • slides ... slides! He­­chos con Mark­­down! En una ter­mi­­nal!

  • kiro ... mejor que nano.

Un mouse-joystick

Cuan­do ha­ga mi note­book, voy a nece­si­tar al­go así. Tal vez. Quien sabe.

Y eso me llevó a ...

Programar Raspberry Pi Pico

Mu­cho mas lin­do que pro­gra­mar Ar­duino, y cues­tan lo mis­mo.

Y las posi­bil­i­dades! Es posi­ble hac­er una conex­ión USB a mi mouse-joy­stick y con­fig­u­rar el firmware us­an­do una in­ter­faz de ter­mi­nal!

Quiero un tecla­do que se remapee con una ter­mi­nal se­rie US­B!

No quiero HAC­ER­LO porque no quiero sol­dar to­do eso pero ... y si lo ha­go con un Mod­e­lo M?

Y aparte ...

Y laburo full time. Y leo bas­tante (acá salen los li­bros que voy ter­mi­nan­do)

Así que an­do ocu­pa­do.


Contents © 2000-2024 Roberto Alsina