mirror of
				https://github.com/mail-in-a-box/mailinabox.git
				synced 2025-10-30 18:50:53 +00:00 
			
		
		
		
	Removed solr
This commit is contained in:
		
							parent
							
								
									1d8f9a87a7
								
							
						
					
					
						commit
						01c95fd93a
					
				
							
								
								
									
										124
									
								
								setup/solr.sh
									
									
									
									
									
								
							
							
						
						
									
										124
									
								
								setup/solr.sh
									
									
									
									
									
								
							| @ -1,124 +0,0 @@ | ||||
| #!/bin/bash | ||||
| # | ||||
| # Inspired by the solr.sh from jkaberg (https://github.com/jkaberg/mailinabox-sogo) | ||||
| # with some modifications | ||||
| # | ||||
| # IMAP search with lucene via solr | ||||
| # -------------------------------- | ||||
| # | ||||
| # By default dovecot uses its own Squat search index that has awful performance | ||||
| # on large mailboxes. Dovecot 2.1+ has support for using Lucene internally but | ||||
| # this didn't make it into the Ubuntu packages, so we use Solr instead to run | ||||
| # Lucene for us. | ||||
| # | ||||
| # Solr runs as a Jetty process. The dovecot solr plugin talks to solr via its | ||||
| # HTTP interface, searching indexed mail and returning results back to dovecot. | ||||
| 
 | ||||
| source setup/functions.sh # load our functions | ||||
| source /etc/mailinabox.conf # load global vars | ||||
| 
 | ||||
| # Install packages and basic configuation | ||||
| # --------------------------------------- | ||||
| 
 | ||||
| echo "Installing Solr..." | ||||
| 
 | ||||
| # Install packages | ||||
| apt_install solr-jetty dovecot-solr | ||||
| 
 | ||||
| # Solr requires a schema to tell it how to index data, this is provided by dovecot | ||||
| cp /usr/share/dovecot/solr-schema.xml /etc/solr/conf/schema.xml | ||||
| 
 | ||||
| # Update the dovecot plugin configuration | ||||
| # | ||||
| # Break-imap-search makes search work the way users expect, rather than the way | ||||
| # the IMAP specification expects. | ||||
| # https://wiki.dovecot.org/Plugins/FTS/Solr | ||||
| # "break-imap-search : Use Solr also for indexing TEXT and BODY searches. | ||||
| # This makes your server non-IMAP-compliant." | ||||
| tools/editconf.py /etc/dovecot/conf.d/10-mail.conf \ | ||||
|         mail_plugins="fts fts_solr" | ||||
| 
 | ||||
| cat > /etc/dovecot/conf.d/90-plugin-fts.conf << EOF; | ||||
| plugin { | ||||
|   fts = solr | ||||
|   fts_autoindex = yes | ||||
|   fts_solr = break-imap-search url=http://127.0.0.1:8080/solr/ | ||||
| } | ||||
| EOF | ||||
| 
 | ||||
| # Install cronjobs to keep FTS up to date. | ||||
| hide_output install -m 755 conf/cronjob/dovecot /etc/cron.daily/ | ||||
| hide_output install -m 644 conf/cronjob/solr /etc/cron.d/ | ||||
| 
 | ||||
| # PERMISSIONS | ||||
| 
 | ||||
| # Ensure configuration files are owned by dovecot and not world readable. | ||||
| chown -R mail:dovecot /etc/dovecot | ||||
| chmod -R o-rwx /etc/dovecot | ||||
| 
 | ||||
| # Newer updates to jetty9 restrict write directories, this allows for | ||||
| # jetty to write to solr database directories | ||||
| mkdir -p /etc/systemd/system/jetty9.service.d/ | ||||
| cat > /etc/systemd/system/jetty9.service.d/solr-permissions.conf << EOF | ||||
| [Service] | ||||
| ReadWritePaths=/var/lib/solr/ | ||||
| ReadWritePaths=/var/lib/solr/data/ | ||||
| EOF | ||||
| 
 | ||||
| # Reload systemctl to pickup the above override. | ||||
| systemctl daemon-reload | ||||
| 
 | ||||
| # Fix Logging | ||||
| # Due to the new systemd security permissions placed when running jetty. | ||||
| # The log file directory at /var/log/jetty9 is reset to jetty:jetty | ||||
| # at every program start.  This causes syslog to fail to add the | ||||
| # rsyslog filtered output to this folder.  We will move this up a | ||||
| # directory to /var/log/ since solr-jetty is quite noisy. | ||||
| 
 | ||||
| # Remove package config file since it points to a folder that | ||||
| # it does not have permissions to, and is also too far down the | ||||
| # /etc/rsyslog.d/ order to work anyway. | ||||
| rm -f /etc/rsyslog.d/jetty9.conf  | ||||
| 
 | ||||
| # Create new rsyslog config for jetty9 for its new location | ||||
| cat > /etc/rsyslog.d/10-jetty9.conf <<EOF | ||||
| # Send Jetty messages to jetty-console.log when using systemd | ||||
| 
 | ||||
| :programname, startswith, "jetty9" { | ||||
|  /var/log/jetty-console.log | ||||
|  stop | ||||
| } | ||||
| EOF | ||||
| 
 | ||||
| # Also adjust logrotated to the new file and correct user | ||||
| cat > /etc/logrotate.d/jetty9.conf <<EOF | ||||
| /var/log/jetty-console.log { | ||||
|     copytruncate | ||||
|     weekly | ||||
|     rotate 12 | ||||
|     compress | ||||
|     delaycompress | ||||
|     missingok | ||||
|     create 640 syslog adm | ||||
| } | ||||
| EOF | ||||
| 
 | ||||
| 
 | ||||
| # Restart services to reload solr schema, dovecot plugins and rsyslog changes | ||||
| restart_service jetty9 | ||||
| restart_service dovecot | ||||
| restart_service rsyslog | ||||
| 
 | ||||
| # Kickoff building the index | ||||
| 
 | ||||
| # Per doveadm-fts manpage: Scan what mails exist in the full text search index | ||||
| # and compare those to what actually exist in mailboxes. | ||||
| # This removes mails from the index that have already been expunged  and  makes | ||||
| # sure that the next doveadm index will index all the missing mails (if any). | ||||
| doveadm fts rescan -A | ||||
| 
 | ||||
| # Adds unindexed files to the fts database | ||||
| # * `-q`: Queues the indexing to be run by indexer process. (will background the indexing) | ||||
| # * `-A`: All users | ||||
| # * `'*'`: All folders | ||||
| doveadm index -q -A '*' | ||||
| @ -102,7 +102,6 @@ source setup/dns.sh | ||||
| source setup/mail-postfix.sh | ||||
| source setup/mail-dovecot.sh | ||||
| source setup/mail-users.sh | ||||
| source setup/solr.sh | ||||
| source setup/dkim.sh | ||||
| source setup/spamassassin.sh | ||||
| source setup/web.sh | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user