FTNS - server side system for FTNW & ifmail & binkd
Π‘Π΅ΡΠ²Π΅ΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΡΠΈΠ΄ΠΎΠ½ΠΎΠ΄Ρ ftns/ftnw, Π΅Ρ Π·Π°Π΄Π°ΡΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΠΊΠΎΠ²Ρ:
- ΠΡΠΈΠ΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΡ ifmail/ifnews ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΡ
Π² ΡΠΏΡΠ»Ρ.
- Π’ΠΎΡΡΠΈΠ½Π³ rfc-0822/rfc-1036 ΡΠΏΡΠ»Π΅Π½ΡΡ
ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈ ΡΠ°ΡΠΊΠΈΠ΄ΡΠ²Π°Π½ΠΈΠ΅ ΠΈΡ
ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΠΎΠΈΠ½ΡΠ°ΠΌ ΠΈ Π² Π±Π°Π·Ρ Π΄Π»Ρ Π±Π±Ρ-ΠΏΠΎΠΈΠ½ΡΠΎΠ².
- Π‘ΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡ
ΠΎ- ΠΈ Π½Π΅ΡΠΌΡΠ»Π° Π² Π±Π°Π·Π΅ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠΏΡΠ»Ρ ΡΠΎΡΡΠ΅ΡΠ°.
- Π ΠΎΡΡΠΈΠ½Π³ ΠΌΡΠ»Π° (ΠΏΠΎΠΊΠ° Π·Π°ΠΏΠ»Π°ΡΠΊΠ°, Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅).
- ΠΠΎΠ΄ΠΏΠΈΡΠΊΠ° (ΠΎΡΠΏΠΈΡΠΊΠ°) Π½Π° ΡΡ
ΠΈ Ρ Π°ΠΏΠ»ΠΈΠ½ΠΊΠΎΠ².
- Areafix - ΠΎΠ±ΡΠΈΠΉ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΈ Π±Π±Ρ-ΠΏΠΎΠΈΠ½ΡΠΎΠ².
- Π‘ΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠΈΠ½ΡΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ Π±Π°Π·ΠΎΠΉ ftnw ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΠΎΠΌ ftns.
- Π‘ΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΡΡ
ΡΠ·Π»Π° ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΠΎΠΌ ftns ΠΈ Π±Π°Π·ΠΎΠΉ ftnw.
- Π‘ΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠΈΠ½ΡΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΠΎΠΌ ftns ΠΈ Π±Π°Π·ΠΎΠΉ ftnw., (*1)
ΠΠ°ΠΌΠ΅Π½Π° ifmail Π½Π° Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΡΠΎΡΡΠ΅Ρ FTS-0001 ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ, Π½ΠΎ ΠΏΠΎΠ·ΠΆΠ΅., (*2)
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
ΠΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π΄Π΅Π»Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ composer
, ΡΠ½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΡΠ°ΠΌ, Π³Π΄Π΅ Π½Π° Π½ΡΠΆΠ½ΠΎ:, (*3)
mkdir ftns && cd ftns
ΠΠ°Π³ΡΡΠΆΠ°Π΅ΠΌ ΡΠ°ΠΉΠ»Ρ:, (*4)
composer require igorgoroun/ftns
ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΏΠΎΡΡ-ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠΊΡΠΈΠΏΡ:, (*5)
cd vendor/igorgoroun/ftns/ && composer run-script post-install-cmd
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ°
Π’Π΅ΠΏΠ΅ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π² ΠΊΠΎΡΠ΅Π½Ρ, ΡΡΠ΄Π° ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π»Π°ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ etc/
, ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ°ΠΉΠ» ftns
ΠΈ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ bash-ΡΠΊΡΠΈΠΏΡ ftns-toss
., (*6)
etc/ftns.yml
ΠΠ»Π°Π²Π½ΡΠΉ ΠΊΠΎΠ½ΡΠΈΠ³-ΡΠ°ΠΉΠ», ΠΏΡΠ°Π²ΠΈΠΌ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ Π½Π°ΡΠΈΠΌ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΠΌ., (*7)
ftns-toss
Shell-ΡΠΊΡΠΈΠΏΡ ΠΏΡΠΎΠ²Π΅ΡΡΡΡΠΈΠΉ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² ΡΠΏΡΠ»Π΅ Π½Π΅ΡΠΌΠ΅ΠΉΠ»Π° ΠΈ ΡΡ
ΠΎΠΌΠ΅ΠΉΠ»Π° ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΠΈΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠΎΡΡΠ΅Ρ.
ΠΡΡΡ ΠΊ ΡΠΏΡΠ»-Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Π½Π΅ΡΠΌΡΠ»Π°:, (*8)
NM_DIR="/var/spool/ftn/netmailspool/"
ΠΡΡΡ ΠΊ ΡΠΏΡΠ»-Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΡΡ
ΠΎΠΌΡΠ»Π°:, (*9)
EM_DIR="/var/spool/ftn/echospool/"
ΠΠΎΠ»Π½ΡΠΉ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠΉ ΠΏΡΡΡ Ρ ΡΠ°ΠΉΠ»Ρ ftns
:, (*10)
FTNS_PATH=β/opt/ftns/ftns"
ΠΠΎΠΌΠ°Π½Π΄Ρ ftns
./ftns list
- ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄.
ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:, (*11)
./ftns help echomail:post
Echomail
./ftns echomail:spool
- ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½Π° STDIN ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ ifnews ΠΈ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ Π² echomail_spool., (*12)
./ftns echomail:toss
- ΡΠΎΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² echomail_spool ΠΈ ΡΠ°ΡΠΊΠ»Π°Π΄ΡΠ°Π΅Ρ ΠΈΡ
ΠΏΠΎΠΈΠ½ΡΠ°ΠΌ., (*13)
./ftns echomail:scan
- ΡΠΌΠΎΡΡΠΈΡ Π½ΠΎΠ²ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΠΠ ΠΈ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ ΠΈΡ
Π΄Π»Ρ ΡΠΎΡΡΠ΅ΡΠ° Π² echomail_spool., (*14)
./ftns echomail:subscribe Point_IFAddr Area1 Area2 β¦
- ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΏΠΎΠΈΠ½ΡΠ° Π½Π° ΡΡ
ΠΈ. Point_IFAddr Π² ΡΠΎΡΠΌΠ°ΡΠ΅ p34.f4.n466.z2.fidonet.org., (*15)
./ftns echomail:newarea Uplink_IFAddr Area1 Area2 β¦
- ΠΠΎΠ΄ΠΏΠΈΡΠ°ΡΡΡΡ Ρ Π°ΠΏΠ»ΠΈΠ½ΠΊΠ° Π½Π° ΡΡ
Ρ ΠΈ Π²Π½Π΅ΡΡΠΈ Π΅Ρ Π² ΠΊΠΎΠ½ΡΠΈΠ³. Uplink_IFAddr Π² ΡΠΎΡΠΌΠ°ΡΠ΅ f55.n466.z2.fidonet.org., (*16)
./ftns echomail:post -s βSubjectβ -m βMessageβ -t βTearlineβ -o βOriginβ ECHOAREA
- ΠΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² ΡΡ
Ρ, (*17)
Netmail
./ftns netmail:spool -f From_RFC -t To_RFC
- ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΡ ifmail Π½Π° STDIN ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ ΠΈΡ
Π² netmail_spool, (*18)
./ftns netmail:toss
- ΡΠΎΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² netmail_spool ΠΈ ΡΠ°ΡΠΊΠ»Π°Π΄ΡΠ°Π΅Ρ ΠΈΡ
ΠΏΠΎΠΈΠ½ΡΠ°ΠΌ., (*19)
./ftns netmail:scan
- ΡΠΌΠΎΡΡΠΈΡ Π½ΠΎΠ²ΡΠ΅ Π½Π΅ΡΠΌΠ΅ΠΉΠ»-ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΠΠ ΠΈ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ ΠΈΡ
Π΄Π»Ρ ΡΠΎΡΡΠ΅ΡΠ° Π² netmail_spool., (*20)
Sync
./ftns sync:points
- Π‘ΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΏΠΎΠΈΠ½ΡΠΎΠ² Π² ftns Ρ ΠΊΠΎΠ½ΡΠΈΠ³-ΡΠ°ΠΉΠ»ΠΎΠΌ ftns., (*21)
./ftns sync:subscr
- Π‘ΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ ΠΏΠΎΠΈΠ½ΡΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ftns ΠΈ ftnw., (*22)
./ftns sync:areas
- Π‘ΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
ΡΡ
ΠΌΠ΅ΠΆΠ΄Ρ ftns ΠΈ ftnw., (*23)
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ifmail
ΠΠΎΠΊΠ°ΠΆΡ ΡΠΎΠ»ΡΠΊΠΎ Π½ΡΠ°Π½ΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ftns., (*24)
Areas
Π£ ΠΌΠ΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π° Π·Π°ΠΏΠΈΡΡ Π² ΡΠ°ΠΉΠ»Π΅, ΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ:, (*25)
* * world
config
ΠΠ°ΠΆΠ½ΡΠ΅ Π΄Π²Π΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ - ΠΎΡΠ²ΡΠ·ΠΊΠ° ΠΎΡ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ²ΡΠ·ΠΊΠΈ ifmail+sendmail+innd:, (*26)
sendmail /var/www/fidonews-server/ftns netmail:spool --from=$F --to=$T
rnews /var/www/fidonews-server/ftns echomail:spool
ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ - Π½Π° Π²Π°ΡΠ΅ ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅, ΡΠ°ΠΌ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅Ρ Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ, ΠΊΡΠΎΠΌΠ΅ Π΄Π°Π½Π½ΡΡ
ΡΠΈΡΠΎΠΏΠ°.
## ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ binkd
Ftns Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠ°ΠΉΠ» *points.inc* Ρ ΠΏΠ°ΡΠΎΠ»ΡΠΌΠΈ ΠΏΠΎΠΈΠ½ΡΠΎΠ² Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΠΎΠ² **binkd**, Ρ ΠΌΠ΅Π½Ρ ΡΡΠΎ <code>/etc/binkd</code>, ΡΠ°ΠΊ ΡΡΠΎ ΡΡΠΎΡ ΡΠ°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ ΠΈ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ.
Π ΠΊΠΎΠ½ΡΠΈΠ³ binkd Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°:
include /etc/binkd/points.inc
## crontab
ΠΠ°ΠΊ ΠΈ ΡΡΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ - Π΄Π΅Π»ΠΎ Π²Π°ΡΠ΅, Ρ ΠΌΠ΅Π½Ρ Π²ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎ ΠΊΡΠΎΠ½Ρ, ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π²ΠΎΡ ΡΠ°ΠΊ:
*/1 * * * * ftn /usr/lib/ifmail/ifpack 2>&1
*/1 * * * * ftn /usr/lib/ifmail/ifunpack 2>&1
*/1 * * * * ftn /usr/bin/php /var/www/fidonews-server/ftns netmail:scan 2>&1
*/3 * * * * ftn /usr/bin/php /var/www/fidonews-server/ftns echomail:scan 2>&1
*/2 * * * * ftn /var/www/fidonews-server/ftns-toss 2>&1
*/10 * * * * ftn /usr/bin/php /var/www/fidonews-server/ftns sync:subscr 2>&1
*/10 * * * * ftn /usr/bin/php /var/www/fidonews-server/ftns sync:points 2>&1
0 0 * * * ftn /usr/bin/php /var/www/fidonews-server/ftns echomail:post r46.alive -m "Ping" -s "Alive" 2>&1