I dont think systemd will expand the ~
, try replacing the ExecStart=/bin/bash ~/.local/bin/ocamlfuseStartup.sh
line with ExecStart=/bin/bash %h/.local/bin/ocamlfuseStartup.sh
, this will expand to your home directory, if its still giving a not found error, try running which google-drive-ocamlfuse
in a terminal and make sure the path is correct
12510198
The 203 error you got is because your script isnt a valid executable, it needs to have a shebang at the top, you can change it to something like this and set the executable bit with chmod +x <file>
#!/usr/bin/env bash
google-drive-ocamlfuse ~/googledrive
this tells it to run using bash as the interpreter.
Im not familliar with this google drive software, but im figuring that its exiting with an error code cuz its running as a system service, and $HOME probobly isnt set so ~
doesnt expand and the software gets an invalid path.
But I recommend using a user service for this, it will run when you login, you should be able to copy the service file you already have into ~/.config/systemd/user/
and run systemctl --user daemon-reload
and systemctl --user enable startup.service --now
, this will enable and start the service in one go.
I also recommend adding the following lines under [Service]
Type=simple
Restart=always
RestartSec=60
idk if the software will exit if it loses network or wifi or anything, but this will have it automatically restart after 60 seconds, should it exit for any reason.
If you need it to run before login, it is possible to do with a system service, but it will need a bit more setup
Heres a python script I made up from just modifying another script I use, it depends on qbittorrent-api, but to use just fill out the connection info and add all the trackers you want to remove in the TRACKERS
array, I've included 2 rarbg trackers just as an example.
#!/usr/bin/env python3
import qbittorrentapi
import sys
TRACKERS = [
"udp://9.rarbg.to:2770/announce",
"udp://9.rarbg.me:2730/announce"
]
conn_info = dict(
host = "qbittorrent.localhost",
port = 80,
username = "admin",
password = "PASSWORD"
)
def main (argv, argc):
qbt_client = qbittorrentapi.Client(**conn_info)
try:
qbt_client.auth_log_in()
except qbittorrentapi.LoginFailed as e:
print(e)
return 1
for torrent in qbt_client.torrents_info():
#urls = []
#for tracker in torrent.trackers:
#print(tracker)
#urls.append(tracker.url)
torrent.remove_trackers(urls=TRACKERS)
#torrent.add_trackers(urls=TRACKERS)
qbt_client.auth_log_out()
return 0
if __name__ == "__main__":
sys.exit(main(sys.argv, len(sys.argv)))
I use qBittorrent, I have used I2PSnark in the past, and it felt clunky and slow, and it was kinda difficult to use
Idk then, I've easily gotten speeds of upto 1.2 MiB/s while torrenting, uploading and downloading, I just downloaded a book from a webserver with wget to test my speed through the HTTP proxy, and I got about 150-300 KB/s throughout the whole transfer, I'm using the default settings of 3 hops, and my router isnt firewalled, no clue what the servers settings are.
Yes, you can take the quantity and length options from the http proxy and just paste it into the socks proxy section, I think tunnel quantity can go up to 16, I recommend 8 for high bandwidth stuff like torrenting, but it will use more CPU and battery, but lowering length from the default of 3 to 1 should help a lot.
No worries, hopefully increasing the tunnel quantity will get you acceptable speeds, I could be missing something, but thats all I can think of besides allowing inbound traffic.
Something I forgot to mention, there is the Java I2P router, its availiable in the default f-droid repo, I havent tested it out on Android, but it has a fancy gui on desktop where everything can be configured, it some blocklists of tor exit nodes and stuff, I think that helps performance, I'm not totally sure tho, I dont use the Java versions, they have too many buttons and switches, and its kinda overwhelming for me.
Increasing the tunnel length add more peers per tunnel, but increasing the tunnel quantity will add more tunnels, which will allow more throughput.
I've never used this app, but it looks like its using i2pd, I would look for the i2pd.conf
, and change the bandwidth flag from L (32kb/s) to like O (256kb/s) or P (2048kb/s), but performance may still not be very good if your router is firewalled.
But you might just be getting bad peers, the speed of a tunnel will be limited by its weakest peer, I would try increasing tunnel quantity on both sides, and allowing inbound traffic on both routers if they arent un-firewalled already, if possible.
It should definitely be possible to setup NGINX & HTTPS to have your i2p router accessable at that domain, but id recommend just using the ssh tunnel with key-based authentication only, it adds an extra layer of authentication and encryption that cant be bruteforced or guessed.
But I strongly advise against having your I2P router bind to a public ip address with just plaintext HTTP
I'm not very familliar with Java I2P, but I took a look at the documentation for Docker, and I didnt see anything about this issue, but I did have the same issue with i2pd in a container. I would try installing it manually and running it outside of the container.
If you need the bind mount feature from Docker, and you are on a systemd system, I recommand using systemd's PrivateMounts feature. It can be added in a dropin file that can be created with the command systemctl edit i2p.service
, the i2p.service
may be different depending on your distro, but for Java I2P's package on Arch its just i2p.service
, but you can add the following in a dropin file to get the same private mounts just for your I2P router:
[Service]
PrivateMounts=yes
BindPaths=/XXX/i2pconfig:/i2p/.i2p
BindPaths=/XXX/I2P-data/i2ptorrents:/i2psnark
You might have to mess around with file permissions depending on who you run your I2P router as.
Sorry I dont have a better solution, I dont know much about Docker. But I think the developer of the Java I2P router is on r/i2p on reddit, and I think you can find him on http://i2pforum.i2p/, he prolly knows a whole lot more about Java I2P and the Docker image than I do.
It looks like its creating a new process and going in the background and systemd cant track it anymore, so it thinks that its exited and tries restarting. I took a link Oscar sent, and I saw that there is a systemd service and the
Type
is set toforking
, I think this could solve the problem, they also have anExecStop
line, id set it toExecStop=fusermount -u %h/googledrive
so it will unmount properly whenever you manually stop the service. So try settingType=forking
, and adding theExecStop
line, hopefully this will stop systemd from restarting it when it hasnt actually exited