P37231 Can you really host your own image board using only its source? link reply
I tried it but it's a hit and miss, depends on the language used. I have zero luck on lua image boards while JS-based image boards are fairly easy. Many ib softwares doesn't support whonix, only gentoo, as you need to direct your browser to its installation folder. Whonix doesnt allow that.
P37238 link reply
P37231 make sure you hve installed all the dependencies luajit fastcgi also you need to configure the webserver (i recommend nginx) to run lua
P37276 link reply
Obviously you would need to know how to setup a web server. I think picochan had decent installation instructions, but I don't know where you can find its source nowadays. Maybe a nanon has it archived?
P37277 link reply
>you need to direct your browser to its installation folder
Don't you mean web server? The browser should only connect to the server, not try to open anything directly from the disk
P37306 link reply
I added a script that installs this board's software on one particular OS (with the idea that this documents dependencies and how things can be set up so that other people can do the analogous thing on their machines; note that it calls another script will install other dependencies in the chroot). If you have trouble figuring out how to get things working, feel free to ask.
http://lambdaplusjs35padjaiz4jw2fugdoeutse262phqr72uf634s2wdbqd.onion/Source/install.sh
P37349 link reply
P37306 hi I have tried your script in a new whonix instance and i gonna say its good because it inst6alls all the dependencies but i received the "Error: near line 579: no such function: LOG"
P37350 link reply
lol no
P37360 link reply
P37349
You need a more recent version of sqlite. The LOG function was added in 3.35.0.
https://www.sqlite.org/changes.html#version_3_35_0
P37367 link reply
P37360
Uh? What are you using a logarithm for?
P37378 link reply
P37367
Choosing the unit and precision for displayed file sizes.
P37436 tl;dr link reply
P37360
i have complied and installed latest sqlite3, changed the repo to bullseye. everything is configured, webserver, torrc and now I get the blue page. I can post, upload files but there are minor bugs. posts on //spam/, /test/ are shown on overboard and everytime i reboot my pc the posts are gone, the files stay on srv/board/files/. i tried creating board.db and private.db in sqlite3 it doesnt seems to solve the issue. new posts are gone each reboot
P37437 link reply
P37436
Is the @reboot line in the crontab actually getting run on reboot?
P37439 link reply
P37436
P37437
Found the issue, apparently chroot wasn't in the path when the crontab entry was trying to run it. So you have to give it the explicit path. I updated crontab.txt to reflect this.

>posts on //spam/, /test/ are shown on overboard
That has to be set up by a moderator action. There's no web UI for it at the moment, so what you have to do is make sure you're in the Source directory, open up luajit / lua, and do

require('tl').loader()
mod = require('mod')
mod.config_board{mod='admin', board='test', overboard_exclude=true}
P37440 link reply
P37437

yes, when I ran the script, I got an error message "no crontab for [username]" so I created the crontab file for that [username] then I ran only the crontab line in one of the .sh file .

(crontab -l || true; cat crontab.txt) | crontab -


here is my crontab file

user@host:~$ crontab -l

@reboot chroot --userspec "$(id -u board):$(id -g board)" /mnt/board /bin/sh -c 'cd /srv/board/Source && ./rebuild.sh'
* * * * * chroot --userspec "$(id -u board):$(id -g board)" /mnt/board /bin/sh -c 'cd /srv/board/Source && ./captcha_fill.lua'
0 1 * * * chroot --userspec "$(id -u board):$(id -g board)" /mnt/board /bin/sh -c 'cd /srv/board/Source && ./clean.lua'
*/10 * * * * chroot --userspec "$(id -u board):$(id -g board)" /mnt/board /bin/sh -c 'cd /srv/board/Data && sqlite3 board.db .dump > board.sql.tmp && gzip board.sql.tmp && mv board.sql.tmp.gz board.sql.gz'
P37441 link reply
P37439 the /source in the install dir or the one created by git?
P37442 link reply
P37439

i have manually ran these with sudo in terminall

sudo /sbin/chroot --userspec "$(id -u board):$(id -g board)" /mnt/board /bin/sh -c 'cd /srv/board/Source && ./rebuild.sh'


sudo /sbin/chroot --userspec "$(id -u board):$(id -g board)" /mnt/board /bin/sh -c 'cd /srv/board/Source && ./clean.lua'


sudo /sbin/chroot --userspec "$(id -u board):$(id -g board)" /mnt/board /bin/sh -c 'cd /srv/board/Data && sqlite3 board.db .dump > board.sql.tmp && gzip board.sql.tmp && mv board.sql.tmp.gz board.sql.gz'


and the posts are back. But these commands wont run on startup. do I need to add (((sudo))) in crontab.txt too?
P37446 link reply
P37439

>require('tl').loader()
>mod = require('mod')
>mod.config_board{mod='admin', board='test', overboard_exclude=true}



did you make sure that teal is included in your setupchroot.sh script? i ran the command above and i got tl.lua is missing

>cd /mnt/board/

>luajit

LuaJIT 2.1.0-beta3 -- Copyright (C) 2005-2022 Mike Pall. https://luajit.org/
JIT: ON SSE3 SSE4.1 fold cse dce fwd dse narrow loop abc sink fuse
> require('tl').loader()
mod = require('mod')
mod.config_board{mod='admin', board='test', overboard_exclude=true}stdin:1: module 'tl' not found:
no field package.preload['tl']
no file './tl.lua'
no file '/usr/share/luajit-2.1.0-beta3/tl.lua'
no file '/usr/local/share/lua/5.1/tl.lua'
no file '/usr/local/share/lua/5.1/tl/init.lua'
no file '/usr/share/lua/5.1/tl.lua'
no file '/usr/share/lua/5.1/tl/init.lua'
no file './tl.so'
no file '/usr/local/lib/lua/5.1/tl.so'
no file '/usr/lib/x86_64-linux-gnu/lua/5.1/tl.so'
no file '/usr/local/lib/lua/5.1/loadall.so'
stack traceback:
[C]: in function 'require'
stdin:1: in main chunk
[C]: at 0x55822d1652c0
> ./mod.lua:1: module 'cjson' not found:
no field package.preload['cjson']
no file './cjson.lua'
no file '/usr/share/luajit-2.1.0-beta3/cjson.lua'
no file '/usr/local/share/lua/5.1/cjson.lua'
no file '/usr/local/share/lua/5.1/cjson/init.lua'
no file '/usr/share/lua/5.1/cjson.lua'
no file '/usr/share/lua/5.1/cjson/init.lua'
no file './cjson.so'
no file '/usr/local/lib/lua/5.1/cjson.so'
no file '/usr/lib/x86_64-linux-gnu/lua/5.1/cjson.so'
no file '/usr/local/lib/lua/5.1/loadall.so'
stack traceback:
[C]: in function 'require'
./mod.lua:1: in main chunk
[C]: in function 'require'
stdin:1: in main chunk
[C]: at 0x55822d1652c0


so i solved that by installing teal


>luarocks install tl



now luajit is looking for mod.lua




LuaJIT 2.1.0-beta3 -- Copyright (C) 2005-2022 Mike Pall. https://luajit.org/
JIT: ON SSE3 SSE4.1 fold cse dce fwd dse narrow loop abc sink fuse
> require('tl').loader()
mod = require('mod')
mod.config_board{mod='admin', board='test', overboard_exclude=true}> stdin:1: module 'mod' not found:
no field package.preload['mod']no file './mod.tl'
no file '/usr/share/luajit-2.1.0-beta3/mod.tl'
no file '/usr/local/share/lua/5.1/mod.tl'
no file '/usr/local/share/lua/5.1/mod/init.tl'
no file '/usr/share/lua/5.1/mod.tl'
no file '/usr/share/lua/5.1/mod/init.tl'
no file './mod.lua'
no file '/usr/share/luajit-2.1.0-beta3/mod.lua'
no file '/usr/local/share/lua/5.1/mod.lua'
no file '/usr/local/share/lua/5.1/mod/init.lua'
no file '/usr/share/lua/5.1/mod.lua'
no file '/usr/share/lua/5.1/mod/init.lua'
no file './mod.lua'
no file '/usr/share/luajit-2.1.0-beta3/mod.lua'
no file '/usr/local/share/lua/5.1/mod.lua'
no file '/usr/local/share/lua/5.1/mod/init.lua'
no file '/usr/share/lua/5.1/mod.lua'
no file '/usr/share/lua/5.1/mod/init.lua'
no file './mod.so'
no file '/usr/local/lib/lua/5.1/mod.so'
no file '/usr/lib/x86_64-linux-gnu/lua/5.1/mod.so'
no file '/usr/local/lib/lua/5.1/loadall.so'
stack traceback:
[C]: in function 'require'
stdin:1: in main chunk
[C]: at 0x55f8752462c0
P37461 link reply
P37442
If you look at install.sh, it's appending the stuff in crontab.txt to root's crontab. But the only reason it's doing that is to descend into the chroot, which isn't necessary in your case. And I've been meaning to migrate away from the chroot setup myself to something more secure. So I'm going to rewrite the install script to remove all references to the chroot, or perhaps have it only as an option. This should also alleviate confusion about what's installed inside the chroot and what's outside, which should alleviate issues like P37446.
P37473 link reply
First
P37476 link reply
P37461

hi i tried to run the mod code in Source folder (mnt/board/srv/board/Source) via luajit. luajit throws this error

> require('tl').loader()
mod = require('mod')
mod.config_board{mod='admin', board='test', overboard_exclude=true}
./database.lua:97: ./database.lua:41: attempt to write a readonly database
stack traceback:
[C]: in function 'error'
./database.lua:41: in function 'insert_action'
./mod.lua:151: in function <./mod.lua:150>
[C]: in function 'xpcall'
./database.lua:84: in function <./database.lua:78>
(tail call): ?
./mod.lua:194: in function 'config_board'
stdin:3: in main chunk
[C]: ?
stack traceback:
[C]: in function 'error'
./database.lua:97: in function <./database.lua:78>
(tail call): ?
./mod.lua:194: in function 'config_board'
stdin:3: in main chunk
[C]: ?


what does it mean?
P37478 link reply
my attempt to move a thread to /spam/

> require('tl').loader()
mod = require('mod')
mod.move_thread_to_board{board='spam', thread='P3'}> >
stdin:1: attempt to call field 'move_thread_to_board' (a nil value)
stack traceback:
stdin:1: in main chunk
[C]: at 0x55835e6f52c0
P37511 link reply
P37476
The relevant error is
>attempt to write a readonly database
and the likely cause is I forgot to tell you that you need to be the root user to do this. Otherwise you get permissions issues.

P37478
It's
mod.move_to_board{mod='admin', posts={3}, dest='spam'}

When I'm done eliminating the chroot stuff, I'll add the script I use, which also displays the available methods.
P37512 link reply
P37511 i tried running luajit as root, set the Data and source folder permissions to read/write for anyone. i still get the readonly error
P37526 link reply
turns out i have to run luajit / lua as user "board"

sudo --user board luajit
P37530 link reply
P37511
>root user
I meant to write "board", sorry
P37526
This is correct
P37532 link reply
based software. i can figure out many luajit mod commands. although, i have zero knowledge of lua. i had fun playing around with it like creating a mod named faggot, posting using the newly created faggot account and delete it with a reason gay mod's rambling.
no-gui modding is great cause you dont have to deal with web browsers. many browsers liek (((firefox))) has telemetry.

why is the command unban_files deletes file instead of unbanning it?

require('tl').loader()
mod = require('mod')
mod.unban_files{mod='admin', posts={23}}
P37533 link reply
and how do you automactically move, redact repetitive (spammy) posts?
P37534 space problem link reply
would be better if you add ability to use /File directory on multiple drives or partitions in case the system drive (where the ib is installed) is full
P37535 link reply
P37532
>why is the command unban_files deletes file instead of unbanning it?
When a file is banned, it gets deleted from the server. Removing the ban can't restore the file, so the status of the file goes to deleted. If someone has the file, they can upload it again.

P37533
I've got a script that I run as a cron job, but I'd rather not post it since seeing what filters are in place could help spammers evade it.

P37534
You could use mount --bind or maybe even just a symlink (haven't tested it) to point /File elsewhere.
P37544 link reply
P37533
here is where you learn that lambda is not fully open source.
What are your thoughts on how outrageous and corrupt this is?
P37561 link reply
P37535

>When a file is banned, it gets deleted from the server.

isn't delete_files command enough?

>mod.delete_files{mod='admin', posts={10}, delete_file='0192b85745c56a7e046a28a053886d9bdde2ad824bbeb3a5ce393885cd2fe032'}

If there are than multiple images in post, the spoiler_flies command spoilers all of them no matter what. I need to spoiler only one file in post that has 4 pics

>mod.spoiler_files{mod='admin', posts={34}, Files=(cc82856e94b3ba39811218148fd2e78173b1c21abaca28fe3a5bb32e3a4fe6cf) , spoiler='rtryrytryt'}
P37564 link reply
>isn't delete_files command enough?
ban_files deletes the file and bans the hash so the exact file can't be reposted.

>I need to spoiler only one file in post that has 4 pics
You can use post_positions or file_refs instead of the posts argument.

mod.move_to_board{mod, posts, dest}
mod.move_to_thread{mod, posts, dest}
mod.delete_files{mod, hashes, file_refs, posts, post_positions}
mod.ban_files{mod, hashes, file_refs, posts, post_positions}
mod.unban_files{mod, hashes, file_refs, posts, post_positions}
mod.spoiler_files{mod, file_refs, posts, post_positions, spoiler}
mod.redact_files{mod, hashes, file_refs, posts, post_positions, redacted}
mod.redact_text({mod, posts}, text)
mod.redact_links{mod, posts}
mod.rerun_markup{mod, posts}
mod.set_overboard_exclude{mod, posts, exclude}
mod.config_board{mod, board, overboard_exclude}
mod.config_board{mod, board, mod_ids}
mod.config_board{mod, board, new_threads_disabled}
mod.config_board{mod, board, text_only}
mod.create_mod{mod, account}
mod.reset_mod_password{mod, account}
mod.set_mod_password{mod, account}
mod.set_mod_status{mod, account, enabled}
mod.exec{mod, query}
mod.exec_redacted({mod, query}, ...)
mod.query(query, do_print)
mod.stdin()
mod.file_refs{posts, post_positions}
mod.hashes{posts, post_positions, file_refs}
mod.range(start, finish)
mod.escape(s)
P37593 link reply
P37544

i think its just additionee features you have t ofork them for yourself
software itself is open source

teh source doesnt come with automod and csp
see

user@host:~$ curl --head http://wwww.freespeech.co.nz/
HTTP/1.1 302 Found
Location: /All/
Date:
Server: lighttpd/1.4.59



user@host:~$ curl --head http://z5lcip4dafatwwa6hvyibizpzwycvwp67cjga3hzjhxhwvuyaqavxnid.onion/All/
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Security-Policy: default-src 'none'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; media-src 'self'; frame-src 'self';
Accept-Ranges: bytes
Content-Length: 160929
Date:
Server: lighttpd/1.4.64
P37594 you are being watched! link reply
P37593

>clearnet

a mouse trap really is a mouse trap
P37597 link reply
P37593
The line to configure the CSP is right at the bottom of lighttpd.conf. It just doesn't get applied to the redirect from / to /All/.
P37617 link reply
P37535

--bind has some limitations. you cant accress the source folder only the target

i need an ability to expand /file by using multiple disks
i have three hdd external hdd mounted on usb ports, i need a command to combine them into one folder including internal storage so i get 123MB (internal) + 2TB + 2TB + 2TB = 6TB for /Files (like ide adapters that come with multiple sdcard slots)

has anyone ever attemped to do that?


will mhddfs help?
https://serverfault.com/questions/191299/can-we-mount-multiple-disks-as-one-directory (use inspect element to remove cookies consent)

im sure one day there will be bloat fags posting 12MB+ avatars all day, coming up with solutions wont hurt
P37620 P2P Newsstand link reply
Give me the onion!!! Now!!! I need a new Newspapers disposal!!!!
P37627 link reply
P37617
>will mhddfs help?
From that page it appears mhddfs hasn't been maintained; they recommend mergerfs now. It seems like the kind of thing that would work. I haven't used either, but I have used overlayfs, and if I ran into the situation where a drive was filling up and the new drives I could buy were the same size, I might try mounting the new one as an overlay filesystem over the old.
P37628 link reply
>From that page
referring to
https://romanrm.net/mhddfs
P37645 link reply
P37617
Shouldn't you mount your disks as a RAID partition?
P37931 link reply
P37564
is it possible to redact text or links without inserting post numbers? make it global so you dont have to type post numbers to redact the same texts, links

P37620 sure ill host one speci. for you xo u stop spamming lambdaadmin sit3
P37934 link reply
P37931

>xo

did you mean "so"?
P38193 link reply
can new_threads_disabled use on posts? and how do you update the ib software? I see you have got rid of chroot
P38200 link reply
P37934 yes neu tiems englisch
P38204 link reply
P38193
>can new_threads_disabled use on posts?
No, but I might add a way to lock threads at some point if it's needed.

>and how do you update the ib software?
You can do a git pull to get the latest source. I haven't written any scripts that update files elsewhere in the system, so depending on the changes you might have to fix things manually to get stuff working again.

>I see you have got rid of chroot
Yep, although it's still running in a chroot setup on this machine. I'm going to migrate away from that, though. I've also changed the default user to www-data since doing otherwise required too much fighting permissions. Although again I've yet to change it on this machine, but I've tested it on others.

Some other plans:
- Add mod.sh script.
- Remove some/all of the luarocks dependencies; try to make it depend on stuff packaged for Debian.
- Back out the Teal stuff since I no longer think it's worth an extra dependency. Maybe use tl check on the .lua files sometimes for linting purposes.
P38230 link reply
P38226
You often hear people say "think before you speak" and that still has ground for the internet. You should always proofread your posts before actually proceeding to post them, unless it is instant-messaging technology like IRC, real time imageboards, or excuse me (((Discord))).

That being said, I did thought that I was having a stoke trying to read that thing.
P38328 link reply
>Can you really host your own image board using only its source?
It depends?
I think most "free as in speech" ib software is a CGI script or even a PHP script and can be run by any webserver with capabilities of running those (such as Apache).
You also have to keep in mind that your [web] ib software can be literally anything as long as it speaks HTTP protocol over the Internet. That is, you CAN make it a standalone application, either in compiled or interpreted language. It's going to be more complex to make it and to run it than just using a webserver and a script, I presume.
P39760 link reply
P38204
Another good idea would be to split site-specific config (like the contents of the /Guide page) into a separate /Config repository.
P39915 link reply
P37597 I thought CSP was for DDoS protection

P37564

I added number {2} next to file_refs and it deletes the file at the bottom the page than the current post. I had no luck with post_positions and hashes commands either.

P39949 link reply
P39915
CSP (Content Security Policy) is an HTTP header that tells the browser not to load things like scripts, images, etc. from non-whitelisted sources. For this site, in the case of scripts, there are no non-whitelisted sources, since no Javascript should be running on this site. This prevents exploits in which a user finds a bug and uses it to inject malicious Javascript into the page, to be executed by other users.

P39915
post_positions is supposed to be a list of 2-item lists e.g.
mod.spoiler_files{mod='admin', post_positions={{39213,3}}, spoiler='NSFW'}
P39985 12of7 link reply
I tried hosting futaba chan but I couldn't install PHP. The Makefile kept failing.
P41561 link reply
how do you fix thumbnail generation problems? when I run the site for like a week or two and when there is a lot of activities, the thumbnail failed to generate.

also unredact function doesnt work. I am trying to unredact pictures ...redact="unredacted"} it keeps redacting.
P41562 link reply
P39985 interesting ill gonna give that ib a try
P41725 link reply
P41561
>how do you fix thumbnail generation problems? when I run the site for like a week or two and when there is a lot of activities, the thumbnail failed to generate.
Probably timing out. You can increase the time limit but the trade off is it will make denial of service attacks easier. At some point I'll look into a smarter way of adjusting the timeout.

>also unredact function doesnt work. I am trying to unredact pictures ...redact="unredacted"} it keeps redacting.
You want redacted=false
P41787 link reply
>This prevents exploits in which a user finds a bug and uses it to inject malicious Javascript into the page, to be executed by other users.
imagine having js enabled
P48235 link reply
Will the the site load faster (even with 100+ requests), if I run lambda on a 12 thread rig, 32GB RAM?
P48236 link reply
Or it would be the same as the speed is limited by tor introduction points? My internet is 1Gbps
P48245 link reply
and yes it handles more requests

not sure about performance though
P48260 link reply
P48235
P48236
I think most of the delay is going through Tor. It loads much faster locally.
P48280 link reply
the government doesnt want u to know this but u can really host your own image board using only it's source for free at home.
ive got 10 imageboards at home.
P48319 link reply
the notable difference is that more RAM the less thumbnail generation issues.

if you are running low on access memory RAM) you'll experience missing thumbnails when uploading multiple image files.

More threads allows you to handle more requests simultaneously (without bottlenecking the machine).
P48321 link reply
well 2 - 4 threads cpu will do just fine.
200 requests uses only ~ 1.14 threads

lighttpd is lightweight by nature
P48323 link reply
next time host lambda on a 100ghz 1tb ram and 120 tb hdd machine and let it get spammed 24/7
P48324 link reply
next time host lambda on a 100ghz 1tb ram with 120 tb hdd machine and let it get spammed 24/7
P48325 link reply
>100ghz 1tb ram

thats overkill 1 Xenon E3 with 2 - 8GB RAM will do just fine.

Even a 2013 celeron laptop handles 200 requests without any problems.
P48663 link reply
Is it possible to change path of /files/? I used mergerfs to bind drives. The new path /mnt/merge was created and I need to use the new /mnt/merge as a /data folder for ljs so the uploaded files spanned across the three mounted HDDs
P48665 link reply
>as a /data folder
I mean /file/
P48685 link reply
>ln /mnt/merge/ /files/
P48686 link reply
P48663
You can also bind mount any directory onto any other directory
mount --bind /mnt/merge/ /files/
P48712 link reply
P48686 great option but all the old files are gone now i got 404 not found when trying to access files. It kills all the pictures.

How do I unbind so I can copy the old content to /mnt/merge?
P48713 link reply
Nvm its gone after reboot. I think i can use crontab to merge drives and bind folder at startup but crontab doesnt work well on whonix
P48714 link reply
Try adding them to fstab? I never run a server, i dunno
P48715 link reply
P48714
This, fstab is the right place to automount stuff at startup.
P49044 link reply
What does the new command 'thread staleness' do?
P54599 link reply
how do i disable captcha?
P54600 link reply
how do i disable captcha once triggered?
P54601 link reply
i cant find a command to reset captcha
P54805 link reply
>no customer support

your soyware doesn't even have all the basic features and you started to implement another gay, useless one (gay games, VM bullshit) . well its time to delete piece of shit out my server btw. jschan is better.
P54810 link reply
P54601
There isn't one. It turns off on its own.
x