Syndie

Aus i2pwiki.mk16.de
Zur Navigation springen Zur Suche springen

<languages /> <translate>

Introduction[Bearbeiten]

About[Bearbeiten]

The software Syndie (for "Syndication") is tool like a news reader/distributor. It distribute messages of various sizes between the syndies instances of different users. All messages are encrypted and bound to a special forum/board, which are created by the users.

On syndicating (synching), the messages between two Syndie instances are exchanged, and this way all messages hop through the net from one user to another. Syndie can use different transport networks:

  • currently working (2016): I2P, Tor, clearnet, Freenet<ref>Freenet compatibility repaired since Syndie v1.107b-0 released in august 2016</ref>,<ref>2014's Freenet patch : http://trac.i2p2.i2p/ticket/1424</ref>
  • need to be developped: transport via USB stick, email, FTP, NNTP.

Screenshot[Bearbeiten]

A Syndie user (nickname: 'Syndie user 17855') browsing a forum named 'Syndie chat':

</translate> Datei:Syndie user browsing a forum.png <translate>

How to get it[Bearbeiten]

User guide[Bearbeiten]

A full user guide is available:

  • inside this Wiki : Syndie Handbook
  • outside this Wiki : read the links in "#External links" section, where you will find a link to the eepsite "Syndie Documentation Project", then follow the link "User guide".

Tips and tricks[Bearbeiten]

How to reset to the default archives known[Bearbeiten]

Syndie comes preconfigured with several default archives addresses. Those archives that can be (un)selected during the first start.

If you start Syndie but have no archives configured (maybe you clicked cancel or ran it a long time ago), you can either:

  • Manually add some archives (see a list in the section below)

or (the destructive way), quit Syndie then:

Warning: this will delete all your own Syndie profile !

  • Under Linux/OSX: erase '~/.syndie' (Linux/OSX) then start Syndie
  • Under Windows XP: erase C:\documents and settings\username\.syndie then start Syndie
  • Under Windows Vista/7: erase 'C:\Users\USERNAME\.syndie' then start Syndie

A unofficial list of archives[Bearbeiten]

Note: a more "official" list of archives is available on http://www.syndie.i2p/wiki/ ("List of known archives"). Readable on this copy of the Syndie_Handbook.

Note: you can know the last uptime date of a eepsite/archive with the help of http://inr.i2p

Syndicating in order to get very old messages[Bearbeiten]

When syndicating (syncing), your Syndie client will retrieve several forums and posts, many of which you will be able to reply to. Every user has his/her own forum, and its posting rights can be as strict as desired.

To get older messages from a archive than the default setting ("2 weeks" as of 2015-12), you may change the setting "Age to treat as 'recent'" into a archive's settings (mouse: right button).

How to restore your Syndie if its database is corrupted[Bearbeiten]

Example of error messages related :

  • 'syndie.db.DBClient : Internal error building ancestors'
  • 'syndie.db.DBClient : Error retrieving the channel hash'

If you have not backup your 'Secrets' (keys of your identities and of their forums), do it : You stop using Syndie ?: backup your secrets (keys) !

Then read : If your Syndie is break (unknown error message).

Advanced users[Bearbeiten]

Setup to run a headless Syndie server (OS: Linux)[Bearbeiten]

When running in CLI mode (Command Line Interface, called "headless"), Syndie use less RAM memory.

Manually[Bearbeiten]

User Eche|on (2013) do start Syndie with "java -jar syndie-cli.jar /path/to/syndiearchive". Within syndie, type "prefs --paginate false" to not need press enter every x lines, then start the httpd server with this line: "httpserv --port 8080 --listeners 10 --writeable true". Should explain itself. To logout and exit, type: "exit".

Automatically (script)[Bearbeiten]

If you want to run a headless Syndie server (to which other instances can sync only with), you can use the following script. Script wrote by KillYourTV, jan 2013 (ref). Confirmed working with v1.105b-0:

</translate>

  1    
  2 #!/bin/sh
  3 
  4 # Syndie background archive controller
  5 # kytv, Jan 2013
  6 
  7 ##########################################
  8 #      Set these per your needs          #
  9 ##########################################
 10 ARCHIVEDIR=
 11 SYNDIECMD="java -Djava.net.preferIPv4Stack=true -jar $HOME/syndie/bin/syndie-cli.jar"
 12 SYNDIEPORT=8080
 13 SYNDIELISTENERS=10
 14 
 15 ##########################################
 16 # Nothing below here should need editing #
 17 ##########################################
 18 if [ "x$ARCHIVEDIR" = "x" ]; then
 19     echo "ERROR: ARCHIVEDIR not configured!" >&2
 20     exit 1
 21 fi
 22 PIDFILE="$ARCHIVEDIR/httpserv.pid"
 23 if [ -e "$PIDFILE" ]; then
 24     PID=$(cat "$PIDFILE")
 25 fi
 26 
 27 
 28 create_config(){
 29     cat << EOF > "$ARCHIVEDIR/runhttpserv.syndie"
 30 httpserv --port $SYNDIEPORT --listeners $SYNDIELISTENERS --writable true
 31 ctrlserv
 32 EOF
 33 }
 34 
 35 do_start() {
 36     if [ -e "$PIDFILE" ]; then
 37         PID=$(cat "$PIDFILE") 2>/dev/null
 38     else
 39         unset PID
 40     fi
 41     if [ "x$PID" != "x" ]; then
 42         if ! kill -0 "$PID" > /dev/null 2>&1; then
 43             rm "$PIDFILE"
 44         else
 45             echo "An instance of Syndie is already running at $PID!" >&2
 46             exit 0
 47         fi
 48     fi
 49     create_config
 50     echo -n "Starting Syndie..."
 51     cd "$ARCHIVEDIR"
 52     TZ=UTC nohup $SYNDIECMD --nostdin @runhttpserv.syndie . >> $ARCHIVEDIR/syndie.log 2>&1 &
 53     echo $! >  "$PIDFILE"
 54     echo "done."
 55 }
 56 
 57 do_stop(){
 58     if [ -e "$PIDFILE" ]; then
 59         echo -n "Stopping (this could take a while)."
 60         kill "$PID" 2> /dev/null
 61         while kill -0 "$PID" 2> /dev/null; do
 62             echo -n .
 63             sleep 1.5
 64         done
 65         rm "$PIDFILE"
 66 
 67 echo done.
 68     else
 69         echo "Syndie is not running." >&2
 70     fi
 71 }
 72 
 73 
 74 case "$1" in
 75     start)
 76         do_start
 77         ;;
 78 status)
 79     if [ ! -r $PIDFILE ]; then
 80         echo "Cannot find $PIDFILE. Syndie is probably not running." >&2
 81         exit 4
 82     fi
 83 
 84 if [ ! -f $PIDFILE -o -z $PID ]; then
 85         echo "Syndie is not running" >&2
 86         exit 3
 87     fi
 88 
 89 if kill -0 $PID > /dev/null 2>&1 ; then
 90         echo "Syndie is running [$PID]" >&2
 91         exit 0
 92     else
 93         echo "Syndie is not running." >&2
 94         rm "$PIDFILE"
 95         exit 1
 96     fi
 97     ;;
 98     restart)
 99     do_stop
100     sleep 2
101     do_start
102     ;;
103     stop)
104         do_stop
105         ;;
106     *)
107         echo "Usage: $0 {stop, start, status, restart}"
108         ;;
109 esac

<translate>

Customization:

  • Suggested filename for the script: syndiectrl.sh
  • Example: ARCHIVEDIR=/home/yourusername/syndie

Using Syndie as a portable software[Bearbeiten]

This is possible (ref: forum.i2p thread (2014)), just start Syndie and specify where you want the profile directory to be saved, e.g.:

Command line example for Windows:

X:\PortableApps\Syndie\bin\Syndie.exe X:\PortableApps\Syndie\Data

Command line example for Linux:

$HOME/syndie/bin/syndie.sh /your/profile/location

(this line use the default Syndie software location in order to create the default profile data, such as the new folders)

java -jar $HOME/syndie/bin/syndie.jar /your/profile/location/usr/bin/syndie /your/archive/location

(this line launches Syndie while specifying your customized profile)

For supported systems (Windows, Linux, OSX) you only need to supply Java, everything else is included within the Syndie installer. Another option is to run Syndie as a plugin to I2P.

Apparmor profile for Syndie[Bearbeiten]

In 2016, Deb-mirror posted<ref>http://forum.i2p/viewtopic.php?t=12469&highlight=</ref> the script he made for Syndie to work with Apparmor (see Wikipedia).

</translate>

@{INSTALL_DIR} = /home/user/syndie

#include <tunables/global>

/home/user/syndie/bin/syndie.sh {
  #include <abstractions/base>

  /usr/lib/jvm/java-?-openjdk-{amd64,armel,armhf,i386,powerpc}/jre/bin/java Cx -> java,
  /usr/lib/jvm/java-?-openjdk/jre/bin/java Cx -> java,
  @{INSTALL_DIR}/bin/syndie.sh r,


  profile java {
    #include <abstractions/base>

    deny /etc/nsswitch.conf r,
    deny @{PROC}/** r,
    deny /sys/** r,

    /etc/fonts/** r,
    /etc/java-?-openjdk/jvm-*.cfg r,
    /etc/java-?-openjdk/logging.properties r,
    /etc/java-?-openjdk/net.properties r,
    /etc/java-?-openjdk/security/java.security r,
    /etc/java-?-openjdk/security/nss.cfg r,
    /etc/java-?-openjdk/tz.properties r,
    /etc/passwd r,
    /etc/timezone r,
    /tmp/ r,
    owner /tmp/hsperfdata_*/ rw,
    owner /tmp/hsperfdata_*/* rw,
    /usr/lib/jvm/java-?-openjdk-{amd64,armel,armhf,i386,powerpc}/jre/bin/java mr,
    /usr/lib/jvm/java-?-openjdk/jre/bin/java mr,
    /usr/local/share/fonts/ r,
    /usr/share/dict/* r,
    /usr/share/fontconfig/conf.avail/*.conf r,
    /usr/share/fonts/ r,
    /usr/share/fonts/** r,
    /usr/share/icons/ r,
    /usr/share/icons/** r,
    /usr/share/java/java-atk-wrapper.jar r,
    /usr/share/javazi/** r,
    /usr/share/mime/mime.cache r,
    /usr/share/pixmaps/ r,
    /usr/share/poppler/cMap/*/ r,
    /usr/share/themes/** r,
    /var/cache/fontconfig/*.cache-4 r,
    /var/tmp/ r,
    owner @{HOME}/.Xauthority r,
    owner @{HOME}/.cache/fontconfig/*.cache-4 r,
    owner @{HOME}/.config/font-manager/conf.d/ r,
    owner @{HOME}/.config/fontconfig/fonts.conf r,
    owner @{HOME}/.fonts/ r,
    owner @{HOME}/.local/share/font-manager/Library/ r,
    owner @{HOME}/.local/share/fonts/ r,
    owner @{HOME}/.local/share/icons/ r,
    owner @{HOME}/.local/share/icons/** r,
    owner @{HOME}/.local/share/mime/mime.cache r,
    owner @{HOME}/.swt/lib/linux/x86_64/*.so mr,
    owner @{HOME}/.syndie/ w,
    owner @{HOME}/.syndie/archive/ rw,
    owner @{HOME}/.syndie/archive/*/ rw,
    owner @{HOME}/.syndie/archive/*/*.syndie rw,
    owner @{HOME}/.syndie/db/ rw,
    owner @{HOME}/.syndie/db/syndie.backup rw,
    owner @{HOME}/.syndie/db/syndie.data rw,
    owner @{HOME}/.syndie/db/syndie.lck rw,
    owner @{HOME}/.syndie/db/syndie.lobs rw,
    owner @{HOME}/.syndie/db/syndie.log w,
    owner @{HOME}/.syndie/db/syndie.properties rw,
    owner @{HOME}/.syndie/db/syndie.properties.new rw,
    owner @{HOME}/.syndie/db/syndie.script rw,
    owner @{HOME}/.syndie/db/syndie.script.new rw,
    owner @{HOME}/.syndie/db/syndie.tmp/ rw,
    owner @{HOME}/.syndie/indexes/ w,
    owner @{HOME}/.syndie/indexes/*-shared-index.dat w,
    owner @{HOME}/.syndie/keyBackup/ w,
    owner @{HOME}/.syndie/keyBackup/nymkeys.*.zip w,
    owner @{HOME}/.syndie/logs/ w,
    owner @{HOME}/.syndie/logs/syndie-log-*.txt w,
    owner @{HOME}/.syndie/outbound/ w,
    owner @{HOME}/.syndie/outbound/*/ w,
    owner @{HOME}/.syndie/outbound/*/*.syndie rw,
    owner @{HOME}/.syndie/scripts/ w,
    owner @{HOME}/.syndie/scripts/defaultaliases rw,
    owner @{HOME}/.syndie/scripts/defaultprefs rw,
    owner @{HOME}/.syndie/scripts/login rw,
    owner @{HOME}/.syndie/scripts/newdatabase rw,
    owner @{HOME}/.syndie/scripts/startup rw,
    owner @{HOME}/.syndie/tmp/ rw,
    owner @{HOME}/.syndie/tmp/* rw,
    owner @{HOME}/.syndie/web/ w,
    owner @{HOME}/.syndie/web/favicon.ico w,
    owner @{HOME}/.syndie/web/index.html w,
    owner @{HOME}/.syndie/web/robots.txt w,
    @{INSTALL_DIR}/bin/ r,
    @{INSTALL_DIR}/bin/syndie.jar r,
    @{INSTALL_DIR}/lib/hsqldb.jar r,
    @{INSTALL_DIR}/lib/i2p.jar r,
    @{INSTALL_DIR}/lib/swt.jar r,
    @{INSTALL_DIR}/lib/syndie.jar r,

  }
}

<translate>

Save this profile to /etc/apparmor.d/home.user.syndie.bin.syndie.sh (adjust home.user.syndie to match your installation directory)

You have to adjust the path /home/user/syndie to where you have installed Syndie. Also this profile is only active when you start Syndie via the syndie.sh file, which is unfortunately not the case for the menu entry created by the installer, so you have to adjust it:

1. Open the file

~/.local/share/applications/Syndie-*.desktop

2. change the line

Exec=java -jar "/home/user/syndie/bin/syndie.jar"

to

Exec=/home/user/syndie/bin/syndie.sh

then save.

You can check if the profile is active by executing aa-status (requires root). If Syndie is running it should say something like:

...
5 processes are in enforce mode.
   /home/user/syndie/bin/syndie.sh (32499)
   /home/user/syndie/bin/syndie.sh//java (32501)

The profile was currently only tested under Debian 8.4 (amd64) with OpenJDK 7 and Cinnamon desktop environment. Server functionality was not tested.

Known issues:

  • File import and export will not work unless you allow read access to the source.
  • Running a server will very likely not work as this use case was not covered during profile creation.

See also[Bearbeiten]

References[Bearbeiten]

</translate> <references /> <translate>

External links[Bearbeiten]

  • Forums in Syndie about new releases (files shared) on iMule network

</translate>